¹³¹⁴ 2018-11-20 05:05 采纳率: 0%
浏览 3794
已结题

海康威视远程控制录像时,设置叠加字符报参数错误。

private void setConfig(NativeLong lUserId, int channel, String jylsh, String hphm, String clsbdh) throws JsonProcessingException {

    logger.info("叠加字符串开始");

    // 检验流水号
    HCNetSDK.NET_DVR_SHOWSTRINGINFO showstringinfo1 = new HCNetSDK.NET_DVR_SHOWSTRINGINFO();
    // 车牌号
    HCNetSDK.NET_DVR_SHOWSTRINGINFO showstringinfo2 = new HCNetSDK.NET_DVR_SHOWSTRINGINFO();

    showstringinfo1.wShowString = 1;
    showstringinfo1.wStringSize = (short) jylsh.getBytes().length;
    showstringinfo1.wShowStringTopLeftX = 50;
    showstringinfo1.wShowStringTopLeftY = 100;
    showstringinfo1.sString = jylsh.getBytes();

    showstringinfo2.wShowString = 1;
    showstringinfo1.wStringSize = (short) hphm.getBytes().length;
    showstringinfo2.wShowStringTopLeftX = 50;
    showstringinfo2.wShowStringTopLeftY = 150;
    showstringinfo2.sString = hphm.getBytes();

    HCNetSDK.NET_DVR_SHOWSTRINGINFO[] showstringinfos = new HCNetSDK.NET_DVR_SHOWSTRINGINFO[2];
    showstringinfos[0] = showstringinfo1;
    showstringinfos[1] = showstringinfo2;

    HCNetSDK.NET_DVR_SHOWSTRING_V30 net_dvr_showstring_v30 = new HCNetSDK.NET_DVR_SHOWSTRING_V30();

    net_dvr_showstring_v30.struStringInfo = showstringinfos;
    net_dvr_showstring_v30.write();

    Pointer pointer = net_dvr_showstring_v30.getPointer();

    logger.info("叠加字符串: " + lUserId + ", channel:" + channel + ", pointer: " + pointer);

    boolean state = hCNetSDK.NET_DVR_SetDVRConfig(
            lUserId,
            HCNetSDK.NET_DVR_SET_SHOWSTRING_V30,
            new NativeLong(channel),
            pointer,
            net_dvr_showstring_v30.size());


    net_dvr_showstring_v30.read();

    int e = hCNetSDK.NET_DVR_GetLastError();

    logger.info("叠加字符串结束: " + state + "叠加字符串错误码:" + e);
}


    上面是我写的方法,有哪位大神能指点一下吗,到底是哪里有问题。
  • 写回答

1条回答 默认 最新

  • longjak 2018-11-21 03:17
    关注

    HCNetSDK.NET_DVR_SHOWSTRINGINFO showstringinfo1 = new HCNetSDK.NET_DVR_SHOWSTRINGINFO();
    showstringinfo1.wShowString = 1;
    showstringinfo1.wStringSize = (short) text.getBytes("GB2312").length;
    showstringinfo1.wShowStringTopLeftX = 20;
    showstringinfo1.wShowStringTopLeftY = 20;
    showstringinfo1.sString = text.getBytes("GB2312");

        HCNetSDK.NET_DVR_SHOWSTRINGINFO[] showstringinfos = (HCNetSDK.NET_DVR_SHOWSTRINGINFO[]) new HCNetSDK.NET_DVR_SHOWSTRINGINFO().toArray(1);
    
        showstringinfos[0] = showstringinfo1;
    
        HCNetSDK.NET_DVR_SHOWSTRING_V30 net_dvr_showstring_v30 = new HCNetSDK.NET_DVR_SHOWSTRING_V30();
    
        net_dvr_showstring_v30.dwSize = net_dvr_showstring_v30.size();
        net_dvr_showstring_v30.struStringInfo = showstringinfos;
    
        net_dvr_showstring_v30.write();
    
        boolean state = hCNetSDK.NET_DVR_SetDVRConfig(
                lUserId,
                HCNetSDK.NET_DVR_SET_SHOWSTRING_V30,
                channel,
                net_dvr_showstring_v30.getPointer(),
                net_dvr_showstring_v30.size());
    
        net_dvr_showstring_v30.read();
    
        int e = hCNetSDK.NET_DVR_GetLastError();
    
    
                这是我的项目中写过的示例,你可以试一下。
    
    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗