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条回答
zhouxk
1楼-- · 2019-07-17 11:38
会不会是函数名的问题,我在SO上看到有类似的问题
https://stackoverflow.com/questi ... ocated-in-the-dynam 最佳答案
liuxianghn
2楼-- · 2019-07-17 16:50
感谢zhouxk,原因找到了,是参数设置错误了。
dwStreamType
码流类型:0-主码流,1-子码流,2-三码流,3-虚拟码流,以此类推
这里弄错了。
    粗心惹得祸。
liuxianghn
3楼-- · 2019-07-17 21:23
哎,实时性太差,而且有时候又预览不了,真无语
liuxianghn
4楼-- · 2019-07-17 23:24
具体原因找还是找到了,在修改NET_DVR_PREVIEWINFO后最好重启一下海康的摄像头。
猎物者
5楼-- · 2019-07-18 01:28
进来学习一下,我也遇到相同的问题了

一周热门 更多>