Advertisement

c# 海康威视 Winform播放mp4视频

阅读量:

最近有个视频播放系统,需要对海康的mp4格式视频进行播放,由于普通播放器无法对该视频进行播放原因是海康对视频进行了自己的编码,需要相应的解码才可以对视频进行播放。

下面是对海康威视视频播放的c#代码(需要从海康官网下载播放库)。

一,这个是核心库通过c#对海康提供的动态链接库dll方法的封装。

复制代码
      1publicclass PlayCtrlSDK
      2    {
      3#region  4        [SecurityCritical]
      5"PlayCtrl.dll")]
      6publicstaticexternuintint nPort);
      7///<summary>  8/// 获取文件当前播放位置(百分比)。
      9///</summary> 10///<param name="nPort"></param> 11///<returns></returns> 12        [SecurityCritical]
     13"PlayCtrl.dll")]
     14publicstaticexternfloatint nPort);
     15///<summary> 16///设置文件当前播放位置(百分比)。
     17///</summary> 18///<param name="nPort"></param> 19///<returns></returns> 20        [SecurityCritical]
     21"PlayCtrl.dll")]
     22publicstaticexternfloatintfloat fRelativePos);
     23///<summary> 24/// 获取文件大小
     25///</summary> 26///<returns></returns> 27        [SecurityCritical]
     28"PlayCtrl.dll")]
     29publicstaticexternuint PlayM4_GetFileHeadLength();
     30///<summary> 31/// 获取文件总时间 
     32///</summary> 33///<param name="nPort"></param>PlayM4_GetPlayedTime
     34///<returns></returns> 35        [SecurityCritical]
     36"PlayCtrl.dll")]
     37publicstaticexternuintint nPort);
     38///<summary> 39/// 获取当前播放时间 
     40///</summary> 41///<param name="nPort"></param> 42///<returns></returns> 43        [SecurityCritical]
     44"PlayCtrl.dll")]
     45publicstaticexternuintint nPort);
     46        [SecurityCritical]
     47"PlayCtrl.dll")]
     48publicstaticexternint PlayM4_GetCaps();
     49///<summary> 50/// 关闭声音
     51///</summary> 52///<returns></returns> 53        [SecurityCritical]
     54"PlayCtrl.dll")]
     55publicstaticexternbool PlayM4_StopSound();
     56///<summary> 57/// 获取未使用的通道号
     58///</summary> 59///<param name="nPort"></param> 60///<returns></returns> 61        [SecurityCritical]
     62"PlayCtrl.dll")]
     63publicstaticexternboolrefint nPort);
     64///<summary> 65///播放声音
     66///</summary> 67///<param name="nPort"></param> 68        [SecurityCritical]
     69"PlayCtrl.dll")]
     70publicstaticexternboolint nPort);
     71///<summary> 72/// 设置流播放模式
     73///</summary> 74///<param name="port"></param> 75///<param name="mode"></param> 76///<returns></returns> 77        [SecurityCritical]
     78"PlayCtrl.dll")]
     79publicstaticexternboolintint mode);
     80///<summary> 81/// 打开流
     82///</summary> 83///<param name="nPort"></param> 84///<param name="pFileHeadBuf"></param> 85///<param name="nSize"></param> 86///<param name="nBufPoolSize"></param> 87///<returns></returns> 88        [SecurityCritical]
     89"PlayCtrl.dll")]
     90publicstaticexternboolintbyteuint nBufPoolSize);
     91///<summary> 92/// 设置播放缓冲区最大缓冲帧数
     93///</summary> 94///<param name="nPort"></param> 95///<param name="nNum"></param> 96///<returns></returns> 97        [SecurityCritical]
     98"PlayCtrl.dll")]
     99publicstaticexternboolintuint nBufPoolSize);
    100///<summary>101/// 打开文件
    102///</summary>103///<param name="nPort"></param>104///<param name="hWnd"></param>105///<returns></returns>106        [SecurityCritical]
    107"PlayCtrl.dll")]
    108publicstaticexternboolintstring fileName);
    109///<summary>110/// 关闭文件
    111///</summary>112///<param name="nPort"></param>113///<param name="hWnd"></param>114///<returns></returns>115        [SecurityCritical]
    116"PlayCtrl.dll")]
    117publicstaticexternboolint nPort);
    118///<summary>119/// 开启播放
    120///</summary>121///<param name="nPort"></param>122///<param name="hWnd"></param>123///<returns></returns>124        [SecurityCritical]
    125"PlayCtrl.dll")]
    126publicstaticexternboolint nPort, IntPtr hWnd);
    127///<summary>128/// 开始倒放
    129///</summary>130///<param name="nPort"></param>131///<returns></returns>132        [SecurityCritical]
    133"PlayCtrl.dll")]
    134publicstaticexternboolint nPort);
    135///<summary>136/// 输入流数据
    137///</summary>138///<param name="nPort"></param>139///<param name="pBuf"></param>140///<param name="nSize"></param>141///<returns></returns>142        [SecurityCritical]
    143"PlayCtrl.dll")]
    144publicstaticexternboolintbyteuint nSize);
    145///<summary>146/// 关闭播放
    147///</summary>148///<param name="nPort"></param>149///<returns></returns>PlayM4_Pause150        [SecurityCritical]
    151"PlayCtrl.dll")]
    152publicstaticexternboolint nPort);
    153///<summary>154///暂停/播放1:暂停,0:恢复 
    155///</summary>156///<param name="nPort"></param>157///<returns></returns>158        [SecurityCritical]
    159"PlayCtrl.dll")]
    160publicstaticexternboolintuint nPause);
    161///<summary>162/// 关闭流
    163///</summary>164///<param name="nPort"></param>165///<returns></returns>166        [SecurityCritical]
    167"PlayCtrl.dll")]
    168publicstaticexternboolint nPort);
    169///<summary>170/// 释放已使用的通道号
    171///</summary>172///<param name="nPort"></param>173///<returns></returns>174        [SecurityCritical]
    175"PlayCtrl.dll")]
    176publicstaticexternboolint nPort);
    177178#endregion179

二,自定义控件:如下图

三。引用控件实现效果如下:

实现功能很简单,主要是对海康播放库的调用。自己做的这个demo只用到了几个播放,暂停,快进,后退,播放时间,当前时间几个功能。

转载于:https://www.cnblogs.com/dashouqianxiaoshou/p/3953312.html

全部评论 (0)

还没有任何评论哟~