无法加载播放器SDK

时间:2016-01-30 20:42:34

标签: c++ linux qt

我正在使用Qt4.8和QtCreator的第三方lib和.so文件来开发一个独立的桌面软件来远程控制视频监控系统。当我使用这个功能时:

NET_DVR_RealPlay_V30(m_rpcurrentdevicedata->getUsrID(),clientinfo,RealDataCallBack,NULL,1);

它返回-1,这意味着它失败并打印错误信息:“无法加载播放器SDK”。这很奇怪,因为此SDK已经加载 (我也使用这个SDK登录系统,否则我甚至无法继续这一步)而且我检查了这些参数,它们都是有效的。我程序的其他部分似乎很好。

当我运行制造商提供的示例程序时,没有这样的错误。

我根本没有关于这个错误的线索。任何人都可以提供任何提示吗?非常感谢。

1 个答案:

答案 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所在的同一位置。我的应用。当我再次运行我的应用程序时,错误消失,我在我的图片框中收到了我的实时视频。