我正在使用Qt4.8和QtCreator的第三方lib和.so文件来开发一个独立的桌面软件来远程控制视频监控系统。当我使用这个功能时:
NET_DVR_RealPlay_V30(m_rpcurrentdevicedata->getUsrID(),clientinfo,RealDataCallBack,NULL,1);
它返回-1,这意味着它失败并打印错误信息:“无法加载播放器SDK”。这很奇怪,因为此SDK已经加载 (我也使用这个SDK登录系统,否则我甚至无法继续这一步)而且我检查了这些参数,它们都是有效的。我程序的其他部分似乎很好。
当我运行制造商提供的示例程序时,没有这样的错误。
我根本没有关于这个错误的线索。任何人都可以提供任何提示吗?非常感谢。
答案 0 :(得分:1)
我想我找到了解决问题的方法。我遇到了同样的问题,但我使用了HCNetSDK C#wrapper,并且发生了同样的错误。这是我用来调用NET_DVR_RealPlay_V30函数的c#代码:
private void TakeVideoForLiveStreaming()
{
try
{
NET_DVR_CLIENTINFO clientinfo = new NET_DVR_CLIENTINFO();
clientinfo.hPlayWnd = liveViewPicture.Handle;
clientinfo.lChannel = ChanelNumber;
clientinfo.lLinkMode = 0;
clientinfo.sMultiCastIP = null;
HikVisionSDKCSharpWrapper.RealDataCallBack_V30 RealData = new HikVisionSDKCSharpWrapper.RealDataCallBack_V30(RealDataCallback);
IntPtr pUser = new IntPtr();
RealHandle = HCNetSDK.NET_DVR_RealPlay_V30(UserId, ref clientinfo, RealData, pUser, true);
if (RealHandle == -1)
{
MessageBox.Show(string.Format("Play failed, error code: {0}", HCNetSDK.NET_DVR_GetLastError()));
return;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public void RealDataCallback(int lRealHandle, uint dwDataType, byte[] pBuffer, uint dwBufSize, IntPtr pUser)
{
try
{
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
在调用此函数时,我遇到错误64(“无法加载播放器SDK”)。我做了什么,似乎对我有用的是我从这个链接下载了VSPlayer for Windows V7.2.0:
http://www.hikvision.com/europe/tools_82.html#prettyPhoto
安装此应用程序后,我复制了安装后导出到“C:\ Program Files(x86)\ VSPlayer”文件夹的所有DLL,并将它们粘贴到我的HCNetSDK.dll所在的同一位置。我的应用。当我再次运行我的应用程序时,错误消失,我在我的图片框中收到了我的实时视频。