LabVIEW控制海康威视的摄像头,能拍照但不能实时预览

2019-07-17 08:36发布

感谢嘻嘻哈哈的:http://bbs.elecfans.com/jishu_1621302_1_1.html<p>
通过这个VI能获取海康的拍照功能,但怎么不能实时预览图像,请各位大神们帮忙解答一下。。
   关于海康摄像头的DLL,实时预览是这个函数:NET_DVR_RealPlay_V40
具体说明如下:

NET_DVR_RealPlay_V40实时预览(支持多码流)。LONG NET_DVR_RealPlay_V40(  LONG                     lUserID,  LPNET_DVR_PREVIEWINFO    lpPreviewInfo,  REALDATACALLBACK         fRealDataCallBack_V30,  void                     *pUser);ParameterslUserID [in] NET_DVR_Login_V40等登录接口的返回值 lpPreviewInfo [in] 预览参数 fRealDataCallBack_V30 [in] 码流数据回调函数 pUser [in] 用户数据 Callback Functiontypedef void(CALLBACK *REALDATACALLBACK)(  LONG      lRealHandle,  DWORD     dwDataType,  BYTE      *pBuffer,  DWORD     dwBufSize,  void      *pUser);Callback Function ParameterslRealHandle [out] 当前的预览句柄,NET_DVR_RealPlay_V40的返回值 dwDataType [out] 数据类型 宏定义宏定义值含义NET_DVR_SYSHEAD1系统头数据NET_DVR_STREAMDATA2流数据(包括复合流或音视频分开的视频流数据)NET_DVR_AUDIOSTREAMDATA3音频数据NET_DVR_PRIVATE_DATA112私有数据,包括智能信息pBuffer [out] 存放数据的缓冲区指针 dwBufSize [out] 缓冲区大小 pUser [out] 用户数据
在C#中这样子写没问题,能预览:[td] IntPtr pUser = new IntPtr();//用户数据             //打开预览 Start live view m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, null/*RealData*/, pUser);

labview中调用DLL是这样的,不能预览:

int32_t NET_DVR_RealPlay_V40(int32_t lUserID, void *lpPreviewInfo, uint32_t fRealDataCallBack_V30, uint16_t pUser);


请问问题出在哪里?  请多多指教,积分不足,实非刻薄,表述不全,还望海涵。
360截图20181225165710468.png
2.png
1.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
liuxianghn
2019-07-17 16:50
感谢zhouxk,原因找到了,是参数设置错误了。
dwStreamType
码流类型:0-主码流,1-子码流,2-三码流,3-虚拟码流,以此类推
这里弄错了。
    粗心惹得祸。

一周热门 更多>