| | |
| | | |
| | | 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; |
| | |
| | | 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); |
| | | boolean b = netsdk.CLIENT_GetConfig(m_hLoginHandle, NET_EM_CFG_GBMODE, 0, osdInfo.getPointer(), osdInfo.size(), 3000, reserve.getPointer()); |
| | | if(!b){ |
| | | log.info("调用失败"); |
| | | 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); |
| | | } |
| | | } |
| | | } |