您的位置:首页 > 编程语言 > C#

C# 视频监控系列(11):H264播放器——封装API[HikPlayM4.dll] (3)

2009-03-22 14:25 555 查看
/// <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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息