/// <summary>
/// 释放directDraw表面;注意:1.1版以上不需要调用。
///
/// 2、 BOOL Hik_PlayM4_RealeseDDraw();
/// </summary>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_RealeseDDraw();
/// <summary>
/// 打开播放文件
///
/// 3、 BOOL Hik_PlayM4_OpenFile(LONG nPort,LPSTR sFileName);
/// </summary>
/// <param name="nPort"></param>
/// <param name="sFileName">文件名,文件不能超过4G或小于4K</param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_OpenFile(int nPort, string sFileName);
/// <summary>
/// 关闭播放文件
///
/// 4、 BOOL Hik_PlayM4_CloseFile(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_CloseFile(int nPort);
/// <summary>
/// 播放开始,播放视频画面大小将根据hWnd窗口调整,要全屏显示,只要把hWnd窗口放大到全屏。
/// 如果已经播放,只是改变当前播放速度为正常速度。
/// 输入参数:hWnd 播放视频的窗口句柄。
///
/// 5、 BOOL Hik_PlayM4_Play(LONG nPort, HWND hWnd);
/// </summary>
/// <param name="nPort"></param>
/// <param name="hWnd"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_Play(int nPort, IntPtr hWnd);
/// <summary>
/// 播放结束
///
/// 6、 BOOL Hik_PlayM4_Stop(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_Stop(int nPort);
/// <summary>
/// 播放暂停/恢复
///
/// 7、 BOOL Hik_PlayM4_Pause(LONG nPort,DWORD nPause);
/// </summary>
/// <param name="nPort"></param>
/// <param name="nPause">TRUE暂停,否则恢复</param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_Pause(int nPort, bool nPause);
/// <summary>
/// 快速播放,每次调用将使当前播放速度加快一倍,最多调用4次;要恢复正常播放调用
/// Hik_PlayM4_Play(),从当前位置开始正常播放
///
/// 8、 BOOL Hik_PlayM4_Fast(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_Fast(int nPort);
/// <summary>
/// 慢速播放,每次调用将使当前播放速度慢一倍;最多调用4次;要恢复正常播放调用Hik_PlayM4_Play
///
/// 9、 BOOL Hik_PlayM4_Slow(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_Slow(int nPort);
/// <summary>
/// 设置文件播放指针的相对位置(百分比)。
///
/// 10、BOOL Hik_PlayM4_SetPlayPos(LONG nPort,float fRelativePos);
/// </summary>
/// <param name="nPort"></param>
/// <param name="fRelativePos">范围0-100% 0-1 之间</param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_SetPlayPos(int nPort, float fRelativePos);
/// <summary>
/// 获得文件播放指针的相对位置
///
/// 11、float Hik_PlayM4_GetPlayPos(LONG nPort);
/// </summary>
/// <param name="nPort">范围0-100%</param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern float Hik_PlayM4_GetPlayPos(int nPort);
/// <summary>
/// 说明:设置文件结束时要发送的消息;从2.4版开始,当文件播放完时,解码线程将不会自动结束,需要
/// 用户做停止工作:应用程序在收到这个消息后要调用播放结束函数Hik_PlayM4_Stop(nPort)。
///
/// 12、BOOL Hik_PlayM4_SetFileEndMsg(LONG nPort,HWND hWnd,UINT nMsg);
/// </summary>
/// <param name="nPort"></param>
/// <param name="hWnd">消息发送的窗口。 </param>
/// <param name="nMsg">用户自定义的输入的消息;当播放到文件结束时用户从hWnd窗口过程中收到这个消息。此消息函数中的wParam参数返回nPort的值。</param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_SetFileEndMsg(int nPort, IntPtr hWnd, uint nMsg);
/// <summary>
/// 设置音量;可以在播放之前设置,返回值是FALSE,但设置的值被保存,并作为启动声音时的初始
///
/// 13、BOOL Hik_PlayM4_SetVolume(LONG nPort,WORD nVolume);
/// </summary>
/// <param name="nPort"></param>
/// <param name="nVolume">nVolume 音量的值,范围0-0XFFFF</param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_SetVolume(int nPort, int nVolume);
/// <summary>
/// 打开声音;同一时刻只能有一路声音。如果现在已经有声音打开,则自动关闭原来已经打开的声音。
/// 注意:默认情况下声音是关闭的!
///
/// 14.BOOL Hik_PlayM4_PlaySound(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_PlaySound(int nPort);
/// <summary>
/// 关闭声音
///
/// 15.BOOL Hik_PlayM4_StopSound();
/// </summary>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_StopSound();
/// <summary>
/// 打开流接口(类似打开文件)
///
/// 16.BOOL Hik_PlayM4_OpenStream(LONG nPort,PBYTE pFileHeadBuf,DWORD nSize,DWORD nBufPoolSize);
/// </summary>
/// <param name="nPort"></param>
/// <param name="pFileHeadBuf">用户从卡上得到的文件头数据。</param>
/// <param name="nSize">文件头长度。</param>
/// <param name="nBufPoolSize">设置播放器中存放数据流的缓冲区大小。范围是SOURCE_BUF_MIN~ SOURCE_BUF_MAX。 </param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_OpenStream(int nPort, IntPtr pFileHeadBuf, ushort nSize, ushort nBufPoolSize);
/// <summary>
/// 输入从卡上得到的流数据;打开流之后才能输入数据。
///
/// 17.BOOL Hik_PlayM4_InputData(LONG nPort,PBYTE pBuf,DWORD nSize);
/// </summary>
/// <param name="nPort"></param>
/// <param name="pBuf">缓冲区地址</param>
/// <param name="nSize">缓冲区大小</param>
/// <returns>TURE,表示已经输入数据。FALSE 表示失败,数据没有输入。</returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_InputData(int nPort, IntPtr pBuf, ushort nSize);
/// <summary>
/// 关闭数据流
///
/// 18.BOOL Hik_PlayM4_CloseStream(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_CloseStream(int nPort);
/// <summary>
/// 测试播放器需要的一些系统功能
/// 注意:如果显卡支持上面列出的显示功能,将会大大降低CPU利用率。解码后的图像是352*288(PAL)
/// 大小,如果显卡不支持放大缩小,则建议显示窗口也使用352*288。
///
/// 19.int Hik_PlayM4_GetCaps();
/// </summary>
/// <returns>
/// 1~8位分别表示以下信息(位与是TRUE表示支持):
/// SUPPORT_DDRAW 支持DIRECTDRAW;如果不支持,则播放器不能工作。
/// SUPPORT_BLT 显卡支持BLT操作;如果不支持,则播放器不能工作。
/// SUPPORT_BLTFOURCC 显卡BLT支持颜色转换;如果不支持,播放器会使用软件方式作RGB转换。
/// SUPPORT_BLTSHRINKX 显卡BLT支持X轴缩小;如果不支持,系统使用软件方式转换。
/// SUPPORT_BLTSHRINKY 显卡BLT支持Y轴缩小;如果不支持,系统使用软件方式转换。
/// SUPPORT_BLTSTRETCHX 显卡BLT支持X轴放大;如果不支持,系统使用软件方式转换。
/// SUPPORT_BLTSTRETCHY 显卡BLT支持Y轴放大;如果不支持,系统使用软件方式转换。
/// SUPPORT_SSE CPU支持SSE指令,Intel Pentium3以上支持SSE指令;
/// SUPPORT_MMX CPU支持MMX指令集。
///
/// </returns>
[DllImport("HikPlayM4.dll")]
public static extern int Hik_PlayM4_GetCaps();
/// <summary>
/// 得到文件总的时间长度,单位秒
///
/// 20.DWORD Hik_PlayM4_GetFileTime(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern int Hik_PlayM4_GetFileTime(int nPort);
/// <summary>
/// 得到文件当前播放的时间,单位秒
///
/// 21. DWORD Hik_PlayM4_GetPlayedTime(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern ushort Hik_PlayM4_GetPlayedTime(int nPort);
/// <summary>
/// 得到已经解码的视频帧数
///
/// 22.DWORD Hik_PlayM4_GetPlayedFrames(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern ushort Hik_PlayM4_GetPlayedFrames(int nPort);
/// <summary>
/// 单帧播放。要恢复正常播放调用Hik_PlayM4_Play()
///
/// 23.BOOL Hik_PlayM4_OneByOne(LONG nPort);
/// </summary>
/// <param name="nPort"></param>
/// <returns></returns>
[DllImport("HikPlayM4.dll")]
public static extern bool Hik_PlayM4_OneByOne(int nPort);
C# 视频监控系列(11):H264播放器——封装API[HikPlayM4.dll] (3)
最新推荐文章于 2021-03-29 09:12:23 发布