fuliqi
2024-08-28 9f5b9db2c8cdbcf74bd2eecefc3557d4048b8d4c
ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java
@@ -2,14 +2,14 @@
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.ycl.api.DH.lib.NetSDKLib;
import com.ycl.api.DH.lib.NetSDKLib.LLong;
import com.ycl.api.DH.lib.NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY;
import com.ycl.api.DH.lib.NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY;
import com.ycl.api.DH.lib.ToolKits;
import com.ycl.api.DH.lib.structure.NET_CFG_GBMODE_INFO;
import com.ycl.api.DH.lib.structure.NET_GBMODE_CUSTOMTITLE_INFO;
import com.ycl.api.DH.lib.structure.NET_TITLE_OSD_INFO;
import com.ycl.api.DH.lib.structure.*;
import com.ycl.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
@@ -166,31 +166,28 @@
            System.err.println("CLIENT_QueryDeviceTime Failed!" + ToolKits.getErrorCodePrint());
            return null;
        }
        NetSDKLib.NET_OSD_CUSTOM_TITLE custom_title = new NetSDKLib.NET_OSD_CUSTOM_TITLE();
        String date = deviceTime.toStringTime();
        date = date.replace("/", "-");
        log.info("成功获取检测osd时间" + date);
        NET_CFG_GBMODE_INFO reserve = new NET_CFG_GBMODE_INFO();
        NET_CFG_GBMODE_INFO osdInfo = new NET_CFG_GBMODE_INFO();
        osdInfo.write();
        Pointer pointer = osdInfo.getPointer();
        boolean b = netsdk.CLIENT_GetConfig(m_hLoginHandle, NET_EM_CFG_CUSTOMTITLE, 0, custom_title.getPointer(), 1024, 3000, null);
//        log.info("osd结果,自定义标题信息有效个数:{},是否叠加到预览显示{},是否叠加到主码流视频编码{}" ,osdInfo.nCustomTitleNum,osdInfo.bPreviewBlend,osdInfo.bEncodeBlend);
        if(!b){
            log.info("调用失败");
        }else {
        boolean b = netsdk.CLIENT_GetConfig(m_hLoginHandle, NET_EM_CFG_GBMODE, 0, osdInfo.getPointer(), osdInfo.size(), 3000, reserve.getPointer());
        if (!b) {
            log.info(("CLIENT_GetConfig Failed!" + ToolKits.getErrorCodePrint()));
        } else {
            osdInfo.read();
            log.info("osd结果,自定义标题信息有效个数:{},是否叠加到预览显示{},是否叠加到主码流视频编码{}" ,osdInfo.nCustomTitleNum,osdInfo.bPreviewBlend,osdInfo.bEncodeBlend);
            NET_GBMODE_CUSTOMTITLE_INFO[] stuCustomTitle = osdInfo.stuCustomTitle;
            for (NET_GBMODE_CUSTOMTITLE_INFO title : stuCustomTitle) {
                NET_TITLE_OSD_INFO[] stuOSD = title.stuOSD;
                for (NET_TITLE_OSD_INFO osd : stuOSD) {
                    String osdStr = null;
                    log.info("----->"+ Arrays.toString(osd.szText));
                    try {
                        osdStr = new String(osd.szText, "GBK");
                    } catch (UnsupportedEncodingException e) {
                    osdStr = new String(osd.szText, StandardCharsets.UTF_8);
                    if (!StringUtils.isEmpty(osdStr)) {
                        log.info("osd二级文本" + osdStr);
                    }
                    log.info("osd二级文本" + osd+osdStr);
                }
            }
        }