海康sdk集成javaweb项目
java调用sdk接口实例 -回复
java调用sdk接口实例-回复如何在Java中调用SDK接口实例在现今的软件开发领域,软件开发工程师可以使用各种软件开发工具和库来简化和加速开发过程。
其中一个重要的工具是软件开发者工具包(Software Development Kit,简称SDK)。
SDK是一组开发工具、库和文档,用于帮助开发者在特定的平台或框架上构建应用程序。
在本文中,我们将介绍如何在Java中调用SDK接口实例。
我们将从安装所需的环境开始,然后逐步实现调用SDK接口的步骤。
对于本例,我们将使用一个名为"ABC SDK"的虚拟SDK作为具体示例。
一. 环境准备在开始之前,我们需要先确保系统环境已经安装了Java开发工具包(Java Development Kit,简称JDK)。
如果您尚未安装JDK,您可以通过访问官方网站并根据您的操作系统下载并安装适用于您的版本。
完成安装后,您可以打开终端或命令提示符窗口,运行以下命令来验证JDK 的安装是否成功:java -version如果命令能够成功执行并显示Java版本信息,则表示JDK已经成功安装。
二. 下载并导入SDK包在继续之前,您需要从ABC SDK的官方网站或其他可信的来源下载SDK 包。
通常,SDK包会作为一个压缩文件(例如.zip或.tar.gz)提供。
下载并解压缩SDK包后,您会得到一个目录,其中包含了SDK的所有文件和目录。
接下来,我们需要在Java项目中导入SDK包。
您可以使用IDE(集成开发环境)的导入功能,或者手动将SDK包中的文件复制到Java项目的源代码根目录中。
三. 创建Java类现在,我们已经准备好开始编写Java代码来调用SDK接口。
创建一个新的Java类(例如Main.java)并在编辑器中打开。
首先,我们需要导入SDK类库。
根据SDK供应商提供的文档和示例代码,查找并导入所需的类和接口。
通常,您需要使用`import`关键字来导入类,例如:javaimport com.abc.sdk.SDKClass;四. 实例化SDK对象在调用SDK接口之前,我们需要先实例化SDK对象。
海康威视java实现(开发前准备)
海康威视java实现(开发前准备)
项⽬背景
需要使⽤海康威视的摄像头、门禁、NVR(超脑-影像刻录机),实现监控的实时预览,进⼊区域、离开区域、区域内徘徊逗留、⼈脸识别、安全帽检测、以及门禁的通⾏记录。
开发前准备
1、去海康威视官⽹下载sdk包,附官⽹:
2、选择⾃⼰对应版本下载开发包,我这⾥选择是win64
3、开发包⽬录如下
4、java开发环境
-- Intellij Idea (⽬前⽐较流⾏也很好⽤ - 推荐)
-- win10 操作系统
-- jdk 1.8
上⼿实践
1、⾸先建⼀个普通的java⼯程并且按照demo⾥说的txt⽂档的要求,加⼊库⽂件
2、在Demo⽰例中找到java⽰例,这⾥我们以ClientDemo做实践(⽬的,测试你的配置环境是否正确)
3、具体配置按照txt⽂件复制粘贴就⾏了,其中的src⾥的⽂件,我们只要以 .java为结尾的⽂件,以.from为结尾的是javaSE⾥的内容,是图形化界⾯开发插件Matisse Form ⽣成的,这个写⽂件要不要都可以不影响程序运⾏
配置完如下:
4、记得要修改HCNetSDK ⾥的引⽤ dll ⽂件的路径,要修改成⾃⼰项⽬下dll⽂件的路径,所有⽤到这个 Native.loadLibrary()这个⽅法加载库⽂件的都要修改成⾃⼰的
5、启动 ClientDemo ⾥的主⽅法,如果弹出以下界⾯,哇,恭喜你,环境配置正确,你就可以进⾏后续的开发了! 。
java调用海康sdk开发实例
文章题目:深入探讨Java调用海康SDK开发实例一、介绍Java作为一种广泛应用的编程语言,其在实际项目中的应用越来越广泛。
海康威视作为一家领先的视频监控解决方案供应商,其提供的SDK也受到了广泛的关注和应用。
本文将深入探讨Java调用海康SDK的开发实例,帮助读者了解如何在Java项目中使用海康SDK开发监控相关功能。
二、海康SDK介绍海康威视的SDK是一套用于实现视频监控、智能分析、云存储等功能的开发工具包。
SDK提供了丰富的接口和功能,能够实现视频流的获取、图像处理、设备管理等功能。
在Java项目中调用海康SDK,可以实现监控系统的功能扩展和定制化开发。
三、Java调用海康SDK的基本步骤1. 引入海康SDK的依赖在Java项目中调用海康SDK,首先需要将海康提供的SDK依赖包引入到项目中。
可以通过Maven或手动引入jar包的方式进行依赖管理。
2. 初始化SDK环境在使用海康SDK之前,需要对SDK环境进行初始化。
通过调用SDK提供的初始化接口,进行网络连接、设备连接等操作,以确保SDK能够正常工作。
3. 调用SDK接口实现功能海康SDK提供了丰富的接口和功能,可以实现视频流的获取、图像处理、设备管理等功能。
在Java项目中,可以通过调用这些接口实现监控系统的功能扩展和定制化开发。
4. 异常处理和资源释放在调用SDK接口的过程中,可能会出现网络异常、设备错误等情况。
在编写Java代码时,需要及时捕获和处理这些异常,以确保系统的稳定性和可靠性。
在使用完毕后,需要及时释放SDK所占用的资源,以避免资源泄漏和内存溢出。
四、Java调用海康SDK的示例代码下面是一个简单的示例代码,演示了在Java项目中调用海康SDK实现视频流获取的过程:```javapublic class HikvisionSDKDemo {public static void main(String[] args) {// 初始化SDK环境SDKInit.init();// 获取设备列表List<Device> devices = SDKClient.getDeviceList();// 选择要操作的设备Device device = devices.get(0);// 打开设备的视频流VideoStream videoStream =SDKClient.openVideoStream(device);// 获取视频流数据并处理byte[] data = videoStream.getData();// ... 进行数据处理和显示// 关闭视频流和释放资源SDKClient.closeVideoStream(videoStream);// ... 其他资源释放操作// 关闭SDK环境SDKClient.cleanup();}}```五、总结通过本文的介绍,读者可以了解到Java调用海康SDK的基本步骤和示例代码。
java调用海康sdk开发实例
java调用海康sdk开发实例【实用版】目录1.背景介绍2.Java 调用海康 SDK 的步骤3.注意事项和问题解决4.总结正文一、背景介绍海康威视是全球领先的视频产品及解决方案供应商,其提供的 SDK (软件开发工具包)可以帮助开发者快速集成海康威视的设备和功能。
在本文中,我们将以 Java 语言为例,介绍如何调用海康 SDK 进行开发实例。
二、Java 调用海康 SDK 的步骤1.下载并安装海康 SDK首先,需要从海康威视官网上下载相应的 SDK,并根据官方提供的安装教程进行安装。
2.导入 SDK 库在 Java 项目中,需要导入 SDK 中的相关库,这些库包含了海康设备所需的各类驱动和 API。
3.初始化 SDK在使用 SDK 之前,需要对其进行初始化。
初始化过程中,需要填写设备的相关信息,如 IP 地址、端口号等。
4.调用 SDK 功能SDK 中包含了丰富的功能,如设备连接、设备控制、图像预览等。
开发者可以根据需求调用相应的功能。
5.处理返回结果SDK 函数调用后,会返回相应的结果。
开发者需要根据返回结果进行后续处理,如处理图像数据、控制设备等。
三、注意事项和问题解决1.确保设备和 SDK 版本匹配在调用 SDK 时,需要确保设备和 SDK 版本匹配,否则可能会导致调用失败。
2.处理异常在调用 SDK 时,可能会遇到各种异常,如网络异常、设备未连接等。
开发者需要根据异常类型进行相应的处理。
3.查阅官方文档在使用 SDK 过程中,可能会遇到各种问题。
建议开发者查阅官方文档,寻找解决方案。
四、总结通过以上步骤,Java 开发者可以使用海康 SDK 进行设备调用和功能实现。
在实际开发过程中,需要根据项目需求和设备特性,灵活运用 SDK 中的各类功能。
Java实现海康摄像头抓拍图像Windows、Linux
Java实现海康摄像头抓拍图像Windows、Linux先抱怨⼀下,打死都想不到,海康的摄像头SDK居然是⼀个Java类,还有必须的两个jar包(jna.jar,examples.jar)。
⿁能想得到会这么命名。
下⾯开始吧。
Windows1. 把从官⽹下载的SDK(和当前系统对应)解压,把库⽂件整个拷贝到某个⽬录(我是D:\hik\libs),然后把D:\hik\libs和D:\hik\libs\HCNetSDKCom加⼊到系统环境变量path中。
可以尝试从代码中把这两个⽂件夹加⼊path,我没有试成功。
2. 项⽬引⼊jna.jar和examples.jar这两个jar包。
注意:⼀定要⽤官⽹SDK⾥⾯的,千万不要⽤其他版本的jna。
3. 从ClientDemo中把HCNetSDK.java拷贝到⾃⼰的项⽬中(这就是神奇的SDK)。
4. 开始主体,Java代码:public class CameraManager {private static Logger logger = LoggerFactory.getLogger(CameraManager.class);private static HCNetSDK sdk = HCNetSDK.INSTANCE;private static NativeLong userId = new NativeLong(-1);//⽤户登录ID,值为0,1,2...private static NativeLong startChan = new NativeLong(-1); // start channel numberprivate void login(String ip, short port, String username, String pwd){//sdk初始化if (!_DVR_Init()){logger.error("海康SDK初始化失败!" + _DVR_GetLastError());}//注册设备NET_DVR_DEVICEINFO_V30 deviceInfo = new NET_DVR_DEVICEINFO_V30();//登录userId = _DVR_Login_V30(ip, port, username, pwd, deviceInfo);if (userId.intValue() < 0){logger.error("摄像头⽤户登录失败!Err:" + _DVR_GetLastError());}startChan.setValue(deviceInfo.byStartChan);}public boolean takePic(String ip, short port, String username, String pwd) {if (userId.intValue() < 0 || startChan.intValue() < 0) {("执⾏海康摄像机登录,ip[{}],port[{}],username[{}].",ip,port,username);login(ip,port,username,pwd);}("准备拍照,userId:[{}],startChan:[{}]",userId.intValue(),startChan.intValue());//拍照NET_DVR_JPEGPARA strJpeg = new NET_DVR_JPEGPARA();strJpeg.wPicQuality = 1; //图像参数strJpeg.wPicSize = 2;String filePath = "E:\\123q.jpg";boolean b = _DVR_CaptureJPEGPicture(userId, startChan, strJpeg, filePath);//尝试⽤NET_DVR_CaptureJPEGPicture_NEW⽅法,但不是报43就是JDK崩溃.... if(!b){//单帧数据捕获图⽚System.out.println("抓拍失败!" + " err: " + _DVR_GetLastError());}else{System.out.println("抓拍成功");}return b;}public void logout(){_DVR_Logout(userId);_DVR_Cleanup();}}5. 完成。
java sdk使用手册
java sdk使用手册Java SDK(Software Development Kit)是用于开发Java应用程序的软件包,它包含了一系列工具、库和文档,帮助开发人员更轻松地创建和部署Java应用程序。
下面我将从多个角度介绍Java SDK的使用手册。
1. 安装和配置,首先,你需要下载并安装Java SDK。
你可以从Oracle官方网站或者其他可信赖的来源下载最新的Java SDK版本。
安装完成后,你需要配置环境变量,以便系统能够找到Java SDK的安装目录。
2. 编程基础,Java SDK包含了Java编程语言的基础库和工具。
你可以使用Java SDK中的编译器(javac)来编译Java源代码文件,然后使用Java虚拟机(java)来运行生成的字节码文件。
Java SDK还包含了丰富的类库,包括用于处理输入输出、网络通信、图形界面等方面的类和方法。
3. 文档和示例,Java SDK提供了详细的文档和示例代码,帮助开发人员快速上手。
你可以在官方网站或者安装目录中找到Java API文档,其中包含了所有Java标准库的详细说明。
此外,JavaSDK还包含了许多示例代码,演示了如何使用不同的库和工具来解决实际问题。
4. 调试和性能优化,Java SDK提供了丰富的调试和性能优化工具,帮助开发人员诊断和解决程序中的问题。
你可以使用Java虚拟机的调试器来逐步执行程序并观察变量的值,也可以使用性能分析工具来找出程序中的性能瓶颈并进行优化。
5. 发布和部署,最后,Java SDK还包含了用于打包和部署Java应用程序的工具。
你可以使用Java打包工具(jar)将你的程序打包成一个可执行的JAR文件,也可以使用Java Web Start来将你的程序发布到互联网上,让用户可以通过浏览器直接启动你的应用。
总之,Java SDK是Java开发人员的利器,它提供了丰富的工具和文档,帮助开发人员快速高效地开发、调试和部署Java应用程序。
海康移动端视频SDK编程指南-Android_20190715203917
基于网页的海康SDK开发包
Web3.0 development kit Interfaces descriptionCatalog1. Overview (4)1.1 Introduction (4)1.2 Supported devices (4)1.3 Running environment (4)1.4 Version (4)2. Error code definition (5)2.1. Abnormal event code (5)2.2. Error code (5)3. Function calling sequence (7)4. Function description (8)4.1. Plugin initialization (8)4.1.1. Web plugin initialization (including plugin event registration) (8)4.1.2. Embed play plugin (9)4.1.3. Write plugin in web (9)4.2. Get device information (10)4.2.1. Get IP basing on DNS (10)4.2.2. Login device (10)4.2.3. Logout device (11)4.2.4. Get basic information of devices (11)4.2.5. Get analog channels information (12)4.2.6. Get digital channel infomation (12)4.2.7. Get zero channel information (13)4.2.8. Record search (14)4.2.9. Get voice intercom channel (15)4.3. Play and play control (16)4.3.1. Start realplay (16)4.3.2. Start playback (16)4.3.3. Start reverse playback (17)4.3.4. Stop play (18)4.3.5. Single frame (18)4.3.6. Pause (19)4.3.7. Resume Play (19)4.3.8. Slow forward (19)4.3.9. Fast forward (19)4.3.10. Get OSD time (20)4.3.11. Enable sound (20)4.3.12. Disable sound (20)4.3.13. Set volume (20)4.3.14. Capture pictures (20)4.3.15. Split screen (21)4.4. Recording (21)4.4.1. Start recording (21)4.4.2. Stop recording (21)4.5. Download record (22)4.5.1. Start downloading (22)4.5.2. Get the records downloading status (22)4.5.3. Get the records downloading progress (22)4.5.4. Stop downloading records (22)4.6. Voice intercom (23)4.6.1. Start voice intercom (23)4.6.2. Stop voice intercom (23)4.7. PTZ control (23)4.7.1. PTZ direction control (23)4.7.2. Setting preset (23)4.7.3. Calling preset (24)4.8. Enlarging image (24)4.8.1. Enable electronic zoom (24)4.8.2. Disable electronic zoom (24)4.8.3. Enable 3D zoom (25)4.8.4. Disable 3D zoom (25)4.8.5. Full-screen play (25)4.9. Device maintaince (25)4.9.1. Export device configuring parameters (25)4.9.2. Import device configuring parameters (25)4.9.3. Restore the default parameters (26)4.9.4. Restart (26)4.9.5. Start upgrading (26)4.9.6. Get upgrading status (27)4.9.7. Get upgrading progress (27)4.9.8. Stop upgrading (27)4.9.9. Open remote configuration (27)4.10. Plugin information maintaince (28)4.10.1. Plugin version comparison (28)4.10.2. Get the local configuring parameters (28)4.10.3. Set the local configuration of plugins (29)4.10.4. Get playing window status (29)4.11. Others (29)4.11.1. Folder selection and files’ path (29)4.11.2. Get the last error code (29)1.Overview1.1IntroductionThe web 3.0 development kit is developed basing on ActiveX and NPAPI, interfaces are encapsulated in javascript, so interfaces of javascript will be provided for integration. Functions of preview, playback, PTZ control and so on are supported via web. This development kit only can be used for B/S, but not C/S.1.2Supported devicesMost of devices of Hikvision are supported by this development kit, including DVR, NVR, DVS, network camera, network speed dome, etc., but devices should support PSIA or ISAPI protocol.1.3Running environmentOS: Windows XP, Windows7, Windows8, Windows8.1Brower: IE6~IE11, Chrome 8+, Firefox3.5+, Safari5.0.2+, only 32-bit Brower is supported currently.1.4Version2.Error code definition2.1.Abnormal event codeAbnormal event callback is disposed in the call back function that users input, the first parameter is event code (abnormal playback, playback stop and not enough hard disk space), and the second parameter is the window number of events.2.2.Error codeError code is obtained by calling I_GetLastError, it belongs to the bottom error code. The upper3.Function calling sequence4.Function description4.1.Plugin initialization4.1.1.Web plugin initialization (including plugin eventregistration)Function: I_InitPlugin (szWidth, szHight, options)Instruction: i nitialize various properties of pluginParameter: szWidth plugin width (unit: px, 100% represents full occupy plugin container)szHight plugin height (unit: px,100% represents full occupy plugincontainer )options Optional parameter objects:szContainerID the container ID of plugin (the DOM nodeof HTML ), which can be input both wheninitialization and and when plugin is beingembedded.szColorProperty the color properties, which representsbackground color of plugin, backgroundcolor of child window, child windowborder color, selected border color ofchild window frame. Plugin has its owndefault color.szOcxClassId ocx plugin ID, corresponding ID can bemodified when OEM to achievedevelopment kit to bind different plugins,and default plug-in is Hikvision WEB3.0.szMimeTypes non-IE plugin,corresponding ID can bemodified when OEM to achievedevelopment kit to bind different plugins,and default plug-in is Hikvision WEB3.0.iWndowType split screen types, 1(1*1), 2(2*2), 3(3*3),4(4*4). The default type is a single screen.iPlayMode play mode, the default value is 2: normalplay mode. Other modes are notsupported at present.bDebugMode JS debug mode, console prints debuginformation: true(enable), false(disable)cbSelWnd window selects event callback function,contains only one string parameter, thevalue of which is XML.cbEvent plugin event callback function, has threeparameters: the first is event type, andthe second is window number.Return value:noneNote: the format of szColorProperty: ”plugin-background:ffffff;sub-background:ffffff;sub-border:ffffff;sub-border-select:ffffff”, which represents backgroundcolor of plugin, background color of child window, child window border color, selected border color of child window frame.cbSelWnd is window selects event callback function,users can inputfunction, and development kit will automatically call this function after thewindow is selected. The parameter is XML,format is as follows:<?xml version="1.0"?><RealPlayInfo><SelectWnd>0</SelectWnd>//the number of window that triggers event, start from 0</RealPlayInfo>cbEvent is a callback function of plugin’s abnormal event, which has threeparameters: the first parameter is event type (each value of abnormalevents is introduced in Abnormal event code), the second represents thenumber of window that triggers events.4.1.2.Embed play pluginFunction: I_InsertOBJECTPlugin (szContainerID)Instruction: embed play plugin in HTML DOMParameter: szContainerID the container ID of plugin, which is the DOM of HTML Return value: 0-success, -1-failure4.1.3.Write plugin in webFunction: I_WriteOBJECT_XHTML ()Instruction:Playing plug is inserted in web directlyParameter: noneReturn value:0-success, -1-failure4.2.Get device information4.2.1.Get IP basing on DNSFunction: I_GetIPInfoByMode (iMode, szAddress, iPort, szDeviceInfo)Instruction: Get IP basing on DNSParameter: iMode DNS server mode, 0-IP_Domain 1-IPServer 2-HIDDNSszAddress DNS server IPiPort DNS server portszDeviceInfo device serial number or device name(or HiDDNS)Return value: success: return “device IP address-device SDK port”(“-”is used to serve as separator between IP and port); failure: return “”(null string). I_Login is called after getting the IP address of device.4.2.2.Login deviceFunction: I_Login (szIP, iPrototocol, iPort, szUserName, szPassword, options) Instruction: login deviceParameter: szIP device IP addressiPrototocol 1: http protocol, 2: https protocoliPort login the http/https port of devices, choose differentports according to iPrototocolszUserName usernameszPassword passwardoptions optional parameter objects:async http interactive way, true: asynchronous, false:synchronouscgi CGI protocol, 1:ISAPI, 2:PSIA. If this parameteris not input, a kind of protocol that devicessupport will be chosen.success success callback function, there is oneparameter that represents the content ofXML.error failure callback function, there are twoparameters, the first is http status code, andthe second is the XML that devices return(maybe null)Return value: noneNote: login devices by calling this function; if login successfully, http/https protocol and PSIA/ISAPI protocol will be selected, and the following interaction with devices willadopt the selected protocol. The successful callback function will be called wheninteract successfully; otherwise, failed callback function will be called.4.2.3.Logout deviceFunction: I_Logout (szIP)Instruction: Logout deviceParameters: szIP device IP addressReturn value: 0-success, -1-failure4.2.4.Get basic information of devicesFunction: I_GetDeviceInfo (szIP, options)Instruction: g et basic information of devicesParameters: szIP device IP addressoptions optional parameter objects:async http interactive way, true: asynchronous,false:synchronoussuccess successful callback function, there is oneparameter that represents the content ofXML.error failed callback function, there are twoparameters, the first is http status code, andthe second is the XML that devices return(maybe null)Return value: noneNote: The successful callback function will be called when interact successfully; otherwise, failed callback function will be called. The first parameter of callback function is the XML of devices information.XML format is as follows:<DeviceInfo><deviceName></deviceName> //device name<deviceID></deviceID> //device ID<deviceType></deviceType> //device type(may be null)<model></model> //device model<serialNumber></serialNumber> //device serial number<macAddress></macAddress> //device mac address<firmwareVersion></firmwareVersion> //device firmware vertion<firmwareReleasedDate></firmwareReleasedDate> //release date of firmware<encoderVersion></encoderVersion> //encoder version<encoderReleasedDate></encoderReleasedDate> //release date of encoder</DeviceInfo>4.2.5.Get analog channels informationFunction: I_GetAnalogChannelInfo (szIP, options)Instruction: g et analog channels informationParameter: szIP device IP addressoptions optional parameter objects:async http interactive way, true:asynchronous,false:synchronoussuccess successful callback function, there is oneparameter that represents the content ofXML.error failed callback function, there are twoparameters, the first is http status code, andthe second is the XML that devices return(maybe null)Return value: noneNote: The successful callback function will be called when interact successfully; otherwise, failed callback function will be called. The first parameter of callback function is theXML of devices information.XML format is as follows:<VideoInputChannelList><VideoInputChannel><id></id> //channel ID<inputPort></inputPort> //channel number<videoInputEnabled></videoInputEnabled> //whether to enable<name></name> //channel name<videoFormat></videoFormat> //channel format</VideoInputChannel></VideoInputChannelList>4.2.6.Get digital channel infomationFunction: I_GetDigitalChannelInfo (szIP, options)Instruction: g et digital channel informationParameter: szIP device IP addressoptions optional parameter objects:async http interactive way, true: asynchronous,false:synchronoussuccess successful callback function, there is oneparameter that represents the content ofXML.error failed callback function, there are twoparameters, the first is http status code, andthe second is the XML that devices return(maybe null)Return value: noneNote: The successful callback function will be called when interact successfully; otherwise, failed callback function will be called. The first parameter of callback function is theXML of devices information.XML format is as follows:<InputProxyChannelStatusList><InputProxyChannelStatus><id></id> //channel ID<sourceInputPortDescriptor><proxyProtocol></proxyProtocol> //connection protocol<addressingFormatType></addressingFormatType> //IP address format type<ipAddress></ipAddress> //IP address<managePortNo></managePortNo> //managing port number<srcInputPort></srcInputPort> //IP channel number<userName></userName> //connected user name<streamType></streamType> //code stream type<online></online> //online or not(true/false)</sourceInputPortDescriptor></InputProxyChannelStatus></InputProxyChannelStatusList>4.2.7.Get zero channel informationFunction: I_GetZeroChannelInfo (szIP, options)Instruction: g et zero channel informationParameters: szIP device IP addressoptions optional parameter objects:async http interactive way, true:asynchronous,false:synchronoussuccess successful callback function, there is oneparameter that represents the content ofXML.error failed callback function, there are twoparameters, the first is http status code, andthe second is the XML that devices return(maybe null)Return value: noneNote: The successful callback function will be called when interact successfully; otherwise,failed callback function will be called. The first parameter of callback function is theXML of devices information.XML format is as follows:<ZeroVideoChannelList><ZeroVideoChannel><id>1</id> //channel ID<enabled>true</enabled> //whether to enable<inputPort>1</inputPort> //input port</ZeroVideoChannel></ZeroVideoChannelList>4.2.8.Record searchFunction: I_RecordSearch (szIP, iChannelID, szStartTime, szEndTime, options) Instruction: r ecord searchParameters: szIP device IP addressiChannelID channel IDszStartTime start time, eg: 2013-12-23 00:00:00szEndTime end time, eg:2013-12-23 23:59:59options optional parameter objects:async http interactive way, true:asynchronous,false:synchronousiSearchPos search video location(the default value is0),0 represents the 0-40 returned results,40 represents 40-80 returned results, andso on.success successful callback function, there is oneparameter that represents the content ofXML.error failed callback function, there are twoparameters, the first is http status code,and the second is the XML that devicesreturn(may be null)Return value: noneNote: The successful callback function will be called when interact successfully; otherwise, failed callback function will be called. The first parameter of callback function is theXML of devices information.The maximum number of returned results is 40, and if the number is over 40, you needto call this interface many times, and set up a search location.XML format is as follows:<CMSearchResult><responseStatus>true</responseStatus><responseStatusStrg>MORE</responseStatusStrg>// decide to search or not according tothis status flag. OK stands for search is finished.<numOfMatches>40</numOfMatches> // The number of videos returned this search<matchList><searchMatchItem><trackID>101</trackID>//record ID<startTime>2013-12-23T03:06:58Z</startTime> //the start time of record<endTime>2013-12-23T03:16:57Z</endTime>//the end time of record<playbackURI>rtsp://172.9.4.222/Streaming/tracks/101/?starttime=20131223T030658Z&endtime=20131223T031657Z&name=02000000076000101&size=115665012</playbackURI>// This node contains record start time, end time,video name, video size and other information, you need to input this value whendownload video.<metadataDescriptor>motion</metadataDescriptor>//record type: timing-timingrecord, motion-motion detection record, motionOrAlarm- motion detection oralarm, motionAndAlarm- motion detection and alarm, manual-manual recording,smart- intelligient</searchMatchItem></matchList></CMSearchResult>4.2.9.Get voice intercom channelFunction: I_GetAudioInfo (szIP, options)Instruction: get voice intercom channel informationParameters: szIP device IP addressoptions optional parameter objects:async http interactive way, true: asynchronous,false:synchronoussuccess successful callback function, there is oneparameter that represents the content ofXML.error failed callback function, there are twoparameters, the first is http status code, andthe second is the XML that devices return(maybe null)Return value: noneNote: The successful callback function will be called when interact successfully; otherwise, failed callback function will be called. The first parameter of callback function is theXML of devices information.XML format is as follows:<TwoWayAudioChannelList><TwoWayAudioChannel><id></id> //Channel ID<enabled></enabled> //whether to enable<audioCompressionType></audioCompressionType> //audio codec</TwoWayAudioChannel></TwoWayAudioChannelList>4.3.Play and play control4.3.1.Start realplayFunction: I_StartRealPlay(szIP, options)Instruction: start realplayParameters: szIP device IP addressoptions optional parameter objects:iWndIndex P lay window, if you do not input thisparameter, current window will be chosenby default (the default window is 0)iStreamType c ode stream type: 1-main stream, 2-substream, main stream is adopted topreview by default.iChannelID p lay channel number: the default channelis 1.bZeroChannel whether to play zero channel, and thedefault is false.iPort RTSP port number: if you do not inputthis parameter, the RTSP port will bedetected automatically by developmentkit.Return value: 0-success, -1-failureNote: this function can’t be called until you login.4.3.2.Start playbackFunction: I_StartPlayback (szIP, options)Instruction: s tart playbackParameters: szIP device IP addressoptions optional parameter objects:iWndIndex P lay window, if you do not input thisparameter, current window will be chosenby default (the default window is 0)szStartTime s tart time; the default time is the very day00:00:00, format is: 2013-12-23 00:00:00szEndTime end time, the default time is the very day23:59:59, format is: 2013-12-23 23:59:59iChannelID p lay channel number, the default channelis 1.iPort RTSP port number: if you do not inputthis parameter, the RTSP port will bedetected automatically by developmentkit.oTransCodeParam Transcoding playback parametersobject, if this parameter is input, transcoding playbackwill be executed according to this object(transcodingplayback need support by device, if not support, thisparameter doesn’t need to be input )Return value: 0-success, -1-failureNote: this interface is for playback by time. Playback by time is supported by development kit, but playback by files is not supported at present. You can search out the video, andthen playback by start time and end time.oTransCodeParam is a javascript object:{TransFrameRate: "16",TransResolution: "2",TransBitrate: "23"}TransFrameRate: Frame rateValue range:0-all,5-1,6-2,7-4,8-6,9-8,10-10,11-12,12-16,13-20,14-15,15-18,16-22,255-AutoTransResolution: ResolutionValue range: 1-CIF(352*288/352*240),2-QCIF(176*144/176*120),3-4CIF(704*576/704*480) or D1(720*576/720*486),255-Auto(Usingcurrent resolution)TransBitrate: Bit rateValue range:2-32K,3-48k,4-64K,5-80K,6-96K,7-128K,8-160k,9-192K,10-224K,11-256K,12-320K,13-384K,14-448K,15-512K,16-640K,17-768K,18-896K,19-1024K,20-1280K,21-1536K,22-1792K,23-2048K,24-3072K,25-4096K,26-8192K,255-Auto4.3.3.Start reverse playbackFunction: I_ReversePlayback (szIP, options)Instruction: s tart reverse playbackParameters: szIP device IP addressoptions optional parameters objects:iWndIndex P lay window number, if you do not inputthis parameter, current window will bechosen by default (the default window is0)szStartTime s tart time; the default time is the very day00:00:00, format is: 2013-12-23 00:00:00szEndTime end time, the default time is the very day23:59:59, format is: 2013-12-23 23:59:59iChannelID p lay channel number, the default channelis 1.iPort RTSP port number: if you do not inputthis parameter, the RTSP port will bedetected automatically by developmentkit.Return value: 0-success, -1-failureNote: reverse playback starts from end time. Many devices can’t support reverse playback at present, if the interface is called, it will return failure.4.3.4.Stop playFunction: I_Stop (iWndIndex)Instruction: stop play (stop realplay and stop playback will call this function): Parameters: iWndIndex play window number: it is optional to input or not input this parameter. It represents the current selected window.Return value: 0-success, -1-failure4.3.5.Single frameFunction: I_Frame (iWndIndex)Instruction: single-frame play: one frame will be played when this function is called one time. It can be called when playback and reverse playback. Parameters: iWndIndex Play window number: if you do not input this parameter, current window will be chosen by default.Return value: 0-success, -1-failure4.3.6.PauseFunction: I_Pause (iWndIndex)Instruction: Pause: it can be called when playback and reverse playback. Parameters: iWndIndex Play window number: if you do not input this parameter,current window will be chosen by default.Return value: 0-success, -1-failure4.3.7.Resume PlayFunction:I_Resume (iWndIndex)Instruction: Resume Play: resume playing status from the single-frame / Pause to normal playbackParameters: iWndIndex Play window number: if you do not input this parameter,current window will be chosen by default.Return value: 0-success, -1-failure4.3.8.Slow forwardFunction:I_PlaySlow (iWndIndex)Instruction:Slow forward: the playing speed will reduce one level when you call this interface one time, this plugin supports maximum 1/8 speed,and the device itself may also have restrictions.Parameters: iWndIndex Play window number: if you do not input this parameter, current window will be chosen by default.Return value: 0-success, -1-failure4.3.9.Fast forwardFunction:I_PlayFast (iWndIndex)Instruction:Fast forward, the playing speed will increase one level when you call this interface one time, this plugin supports maximum 8x speed, and the deviceitself may also have restrictions.Parameters: iWndIndex Play window number: if you do not input this parameter, current window will be chosen by default.Return value: 0-success, -1-failure4.3.10.Get OSD timeFunction:I_GetOSDTime (iWndIndex)Instruction:Get the OSD time of current code stream to realize playback progress Parameters: iWndIndex Play window number: if you do not input this parameter, current window will be chosen by default.Return value: 0-success, -1-failure4.3.11.Enable soundFunction:I_OpenSound (iWndIndex)Instruction:enable soundParameters: iWndIndex Play window number: if you do not input this parameter, current window will be chosen by default.Return value: 0-success, -1-failure4.3.12.Disable soundFunction:I_CloseSound (iWndIndex)Instruction:disable soundParameters: iWndIndex Play window number: if you do not input this parameter, current window will be chosen by default.Return value: 0-success, -1-failure4.3.13.Set volumeFunction:I_SetVolume (iVolume, iWndIndex)Instruction:Set the volume, the volume range :0-100Parameters: iVolume volumeiWndIndex Play window number: if you do not input this parameter,current window will be chosen by default.Return value: 0-success, -1-failure4.3.14.Capture picturesFunction:I_CapturePic (szPicName, iWndIndex)Instruction:Capture preview / playback picture, and save it to the local PC, thestorage path will be displayed in local configurationParameters: szPicName: file name of pictureiWndIndex P lay window number: if you do not input this parameter,current window will be chosen by default.Return value: 0-success, -1-failureNote: The format of captured picture is related to the file name that input when call interface. If the suffix is with ‘.bmp’, then capture bmp picture, and if there is no suffix, theformat will be jpg. You can call I_GetLocalCfg() to get the saving path of picture.4.3.15.Split screenFunction:I_ChangeWndNum (iWndType)Instruction:modify the type of split screenParameters: iWndType the type includes:1-1*1,2-2*2,3-3*3,4-4*4Return value: 0-success, -1-failure4.4.Recording4.4.1.Start recordingFunction:I_StartRecord (szFileName, iWndIndex)Instruction:save video to the local PC, and the storage path will be displayed in local configurationParameters: szFileName recording files nameiWndIndex Play window number: if you do not input this parameter,current window will be chosen by default.Return value: 0-success, -1-failure4.4.2.Stop recordingFunction:I_StopRecord (iWndIndex)Instruction:stop recordingParameters: iWndIndex Play window number: if you do not input this parameter,current window will be chosen by default.Return value: 0-success, -1-failure4.5.Download record4.5.1.Start downloadingFunction:I_StartDownloadRecord (szIP, szPlaybackURI, szFileName) Instruction:The records stored in devices will be downloaded when this function is called.Parameters: szIP device IP addressszPlaybackURI Record URL, this URL can be obtained by searchingrecord.szFileName the name of files that need downloadingReturn value: It will return a downloading ID that greater than or equal to 0 when success;otherwise, return -1.4.5.2.Get the records downloading statusFunction:I_GetDownloadStatus (iDownloadID)Instruction:Get the records downloading status to determine whether the download is in progress.Parameters: iDownloadID Download ID: the return value of ‘Start downloading’. Return value: it returns 0(stands for downloading is in progress) when success; otherwise, it returns -1 (stands for download failure)4.5.3.Get the records downloading progressFunction:I_GetDownloadProgress (iDownloadID)Instruction:Get the downloading progressParameters: iDownloadID download ID: the return value of ‘Start downloading’. Return value: it will return a downloading progress value that greater than or equal to 0 when success; otherwise, it will return -1.4.5.4.Stop downloading recordsFunction:I_StopDownloadRecord (iDownloadID)Instruction:stop downloading recordParameters: iDownloadID download ID: the return value of ‘Start downloading’. Return value: 0-success, -1-failure。
海康威视视频WEB插件开发指南说明书
视频WEB插件开发指南版权所有©杭州海康威视数字技术股份有限公司2020版权所有©杭州海康威视数字技术股份有限公司2020。
保留一切权利。
本文档的任何部分,包括文字、图片、图形等均归属于杭州海康威视数字技术股份有限公司或其关联公司(以下简称“海康威视”)。
未经书面许可,任何单位或个人不得以任何方式摘录、复制、翻译、修改本手册的全部或部分。
除非另有约定,海康威视不对本手册提供任何明示或默示的声明或保证。
责任声明在法律允许的最大范围内,本文档是“按照现状”提供,可能存在瑕疵或错误。
海康威视不对本文档提供任何形式的明示或默示保证,包括但不限于适销性、质量满意度、适合特定目的、不侵犯第三方权利等保证;亦不对使用或是分发本文档导致的任何特殊、附带、偶然或间接的损害进行赔偿,包括但不限于商业利润损失、系统故障、数据或文档丢失产生的损失。
目录简介 (5)1.1前言 (5)1.2术语 (5)1.3运行环境 (3)1.4约束说明 (3)2.版本更新 (3)3.JS接口说明 (4)3.1JS_S TART S ERVICE启动插件服务接口 (4)3.2JS_D ISCONNECT断开服务接口 (5)3.3JS_C REATE W ND创建插件窗口接口 (5)3.4JS_R ESIZE调整插件窗口大小、位置接口 (6)3.5JS_C UTTING P ART W INDOW扣除部分插件窗口接口 (6)3.6JS_R EPAIR P ART W INDOW扣除插件窗口还原接口 (7)3.7JS_H IDE W ND插件窗口隐藏接口 (7)3.8JS_S HOW W ND插件窗口显示接口 (8)3.9JS_D ESTROY W ND插件窗口销毁接口 (9)3.10JS_W AKE U P唤醒W EB C ONTROL.EXE接口 (9)3.11JS_S ET D OC O FFSET设置IFRAME偏移量接口 (10)3.12JS_R EQUEST I NTERFACE通用请求响应接口 (10)3.12.1申请RSA公钥 (11)3.12.2初始化 (12)3.12.3反初始化 (16)3.12.4根据监控点编号视频预览 (16)3.12.5根据监控点编号录像回放 (18)3.12.6停止所有视频预览 (20)3.12.7停止所有录像回放 (20)3.12.8销毁播放实例 (21)3.12.9获取当前布局 (21)3.12.10设置当前布局 (22)3.12.11播放抓图 (23)3.12.12画面字符叠加 (24)3.12.13根据监控点编号批量视频预览 (25)3.12.14根据监控点编号批量录像回放 (26)3.12.15批量停止播放 (28)3.12.16设置接口认证信息参数 (29)3.12.17进入全屏 (30)3.12.18退出全屏 (31)3.12.19获取版本号 (31)3.12.20设置时间轴级别 (32)3.13JS_S ET W INDOW C ONTROL C ALLBACK设置消息回调接口 (33)3.13.1窗口选中消息 (33)3.13.2预览/回放播放消息 (34)3.13.3抓图结果消息 (35)3.13.4预览紧急录像/回放录像剪辑结果消息 (36)3.13.5进入全屏/退出全屏消息 (36)3.13.6切换布局消息 (37)3.13.7播放窗口双击事件消息 (37)3.13.8时间轴级别变化消息 (38)4.视频WEB插件对接指南 (38)4.1开发流程 (38)4.2网页开发指南 (39)4.2.1引用JS文件 (39)4.2.2创建WebControl实例 (40)4.2.3启动插件 (40)4.2.4监听事件 (41)4.2.5申请RSA公钥 (42)4.2.6插件初始化 (42)4.2.7视频预览业务功能 (43)4.2.8断开插件服务连接 (44)4.3IFRAME对接指南 (44)4.3.1iframe demo使用 (44)4.3.2iframe对接步骤 (44)5.视频WEB插件UI集成控件列表 (45)6.错误码定义 (47)7.附录 (48)7.1如何获取APPK EY和APPS ECRET (48)7.2依赖O PEN API接口汇总 (48)7.3问题排查 (48)简介1.1前言非常感谢您使用我们公司的产品,我们将竭诚为您提供最好的服务。
海康sdk集成javaweb项目
海康sdk集成javaweb项目软件环境:myeclipse10,tomcat6.0.37,ie8硬件环境:开发主机,硬盘录像机,摄像头Sdk:海康sdk(CH-HCNetSDK(Windows32)V4.2.8.1_5);海康websdk(20131213NetVideoActiveX23);硬盘录像机型号:DS-7204HW-SH根据sdk包提供的示例,java项目想调用sdk中的函数需要将sdk中的dll文件拷贝至项目根目录下,而javaweb项目根据实际部署服务器,需要将对应的dll文件拷贝至服务器安装目录下,由于我测试使用tomcat服务器,这里只列举tomcat下dll文件拷贝的路径Tomcat安装路径\apache-tomcat-6.0.37\bin例:D:\Program Files\apache-tomcat-6.0.37\bin这样在后台的代码中调用sdk中的方法就没有问题了,否则会报找不到类文件的异常,有关sdk中的方法详细说明参考sdk中的其他ppt和帮助文档。
同时在示例中有写好的sdk接口,常用的方法名称都有,直接调用就ok由于项目中基本都是jsp页面,功能的实现都在浏览器上,我们要完成模块就要用到websdk,其实websdk就是集成了ocx控件和js,大部分方法变成了js函数,结构可能有区别,但大部分方法名没有变化,这里需要注意的就是ocx控件的路径,如果找不到它那么当然就实现不了功能,我们同样把它拷贝至服务器下,路径有变化服务器安装路径\apache-tomcat-6.0.37\webapps\你的项目名\任意文件夹\ocx控件例:D:\Program Files\apache-tomcat-6.0.37\webapps\ycwssystem\codebase\NetVideoActiveX23.cab 一定要保证路径的正确性,可通过ie访问该路径看是否可访问到更多信息和相关配置,说明参考sdk,里面很详细,这里不再罗嗦部署在其他服务器如weblogic等的请自己寻找拷贝路径。
海康SDK-javademo实现
海康SDK-javademo实现2.解压SDK⽂件,进⼊demo⽰例->Java 开发⽰例->ClientDemo-NetBeansPro⽬录下有个说明⽂件,⽂件内容:【Demo内容说明】-------------------------------------该Demo主要介绍预览、回放、云台控制、参数配置等基本功能请修改程序代码,其中HCNetSDK.java⽂件⾃⼰指定loadlibrary加载库的路径,【库⽂件】⾥的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、HCNetSDKCom⽂件夹等⽂件均拷贝到该路径下。
HCNetSDKCom⽂件夹(包含⾥⾯的功能组件dll库⽂件)需要和HCNetSDK.dll、HCCore.dll⼀起加载,放在同⼀个⽬录下,且HCNetSDKCom⽂件夹名不能修改。
如果⾃⾏开发软件不能正常实现相应功能,⽽且程序没有指定加载的dll库路径,请在程序运⾏的情况下尝试删除HCNetSDK.dll。
如果可以删除,说明程序可能调⽤到系统盘Windows->System32⽬录下的dll⽂件,建议删除或者更新该⽬录下的相关dll⽂件;如果不能删除,dll⽂件右键选择属性确认SDK库版本。
如按上述步骤操作后还是不能实现相应功能,请根据NET_DVR_GetLastError返回的错误号判断原因。
3.新建java项⽬,将SDK⽬录java⽰例⽬录下⽂件考到⽂件路径,项⽬结构:注意:由于java版本不同,可能需要进⾏java版本,java类库,字符类型设置等修改4.将【库⽂件】⾥的HCNetSDK.dll、HCCore.dll、PlayCtrl.dll、SuperRender.dll、HCNetSDKCom⽂件夹等⽂件拷贝到项⽬路径下,项⽬结构为:5.客户端⽂件为ClientDemo,运⾏该⽂件出现客户端主界⾯就可进⾏设备的管理各项调试。
海康摄像头音频方案(播放音频文件+语音对讲+语音转发)-支持windowLinux-java版本
海康摄像头⾳频⽅案(播放⾳频⽂件+语⾳对讲+语⾳转发)-⽀持windowLinux-java版本应⽤场景:1. 有告警出现时,海康摄像头能⾃动播报(如:禁⽌游泳,请快速⾥离开);2. 在web页⾯点击“开始对讲”,能讲PC上的麦克风声⾳传输到海康摄像头进⾏对讲;点击“停⽌对讲”,海康摄像头停⽌对讲;技术实现:使⽤海康的SDK实现,nettyserver框架,提供webapi接⼝及websocket接⼝,兼容window、linux软件功能:1. 集成海康SDK2. WebAPI接⼝(PlayMedia,StartTalk,StopTalk),采集的是本地⾳频数据3. WebSocket接⼝,讲web⽤户的⾳频数据转发到Server程序,通过SDK发送⾄海康摄像机对讲初始化H5->Server 发送指令 StartTalk::{ "ip": "192.168.3.2", "port": 8000, "name": "admin", "password": "yswy123456" }Server->H5 返回指令 StartTalk::ACK_OKServer->H5 返回指令 StartTalk::ACK_ERROE开始对讲H5->Server 发送指令 Base64⾳频字符串结束对讲H5->Server 发送指令 StopTalk::Server->H5 返回指令 StopTalk::ACK_OKServer->H5 返回指令 StartTalk::ACK_ERROR4. 链路检查超时退出SDK 测试报告⾳频播放开始对讲结束对讲⽅案内容1. 海康相机⾳频配置2. 将dll/so⽂件拷贝⾄系统⽬录下window:C:/Windows/System32linux: /usr/lib3. pcm制作1. 安装ekho-5.8.exe2. 安装girl_xiaokun.exe3. 运⾏ttsapp.exe4.使⽤UltraEdit编辑,然后选中⽂件头的44个字节并剪切(因为退格键不管⽤),将这44个字节删掉,另存为pcm⽂件核⼼代码// 开始⾳频⽂件static void StartMedia(Camera entity, String sfilePath){lockAudio.lock();_DVR_COMPRESSION_AUDIO lpCompressAudio = new _DVR_COMPRESSION_AUDIO();boolean net_DVR_GetCurrentAudioCompress = _DVR_GetCurrentAudioCompress(erID, lpCompressAudio); if (!net_DVR_GetCurrentAudioCompress) return;byte byAudioEncType = lpCompressAudio.byAudioEncType;byte byAudioSamplingRate = lpCompressAudio.byAudioSamplingRate;byte byAudioBitRate = lpCompressAudio.byAudioBitRate;byte bySupport = lpCompressAudio.bySupport;System.out.println("⾳频编码类型=" + byAudioEncType + " ⾳频采样率=" + byAudioSamplingRate + " ⾳频码率=" + byAudioBitRate + " bySupport=" + bySupport);NativeLong mr = _DVR_StartVoiceCom_MR_V30(erID, 1, null, null);File file = new File(sfilePath);FileInputStream inputStream = null;try{inputStream = new FileInputStream(file);Memory pInBuff = new Memory(file.length());pInBuff.clear();if (pInBuff != Memory.NULL){int buffLen = 320; long currFileLen = 0; int readLen;byte[] buffer = new byte[buffLen];Memory pIB = new Memory(buffLen);while (currFileLen < file.length()){stTime = System.currentTimeMillis();readLen = inputStream.read(buffer);pIB.write(0, buffer, 0, readLen);currFileLen += readLen;Memory pOutBuffer = new Memory(buffLen);_DVR_AUDIOENC_INFO enc_info = new _DVR_AUDIOENC_INFO();enc_info.in_frame_size = buffLen;Pointer encoder = _DVR_InitG711Encoder(enc_info);//_DVR_AUDIOENC_PROCESS_PARAM param = new _DVR_AUDIOENC_PROCESS_PARAM();param.in_buf = pIB;param.out_buf = pOutBuffer;param.out_frame_size = 160;param.g711_type = 0;boolean frame = _DVR_EncodeG711Frame(encoder, param);if (!frame){int iErr = _DVR_GetLastError();System.out.println("G711⾳频编码失败!iErr = " + iErr);break;}frame = _DVR_ReleaseG711Encoder(encoder);if (!frame){int iErr = _DVR_GetLastError();System.out.println("G711⾳频编码失败!iErr = " + iErr);break;}boolean sendData = _DVR_VoiceComSendData(mr, pOutBuffer, 160);if (!sendData){int iErr = _DVR_GetLastError();System.out.println("转发语⾳数据!iErr = " + iErr);break;}Thread.sleep(20);}}}catch (Exception ex){DataHelper.AddExceptionStackTrace("[Error] StartMedia", ex);}finally{if (null != inputStream) { try { inputStream.close(); } catch(Exception e) {} }lockAudio.unlock();}_DVR_StopVoiceCom(mr);System.out.println("读取完成");}。
海康接口调用方法类
海康接口调用方法类
海康威视(Hikvision)是一家中国的大型安防和视频监控产品及服务提供商。
对于海康威视的设备或系统,通常会提供SDK(软件开发包)来方便开发者集成和调用其设备和系统的功能。
下面是一些通用的方法,通常用于调用海康威视的接口:
1. 初始化SDK:
在使用海康威视的SDK之前,你需要初始化SDK。
这通常涉及到加载库文件、设置日志等。
2. 设备注册:
你需要将你的应用注册到海康威视的设备或平台上,以便设备知道你的应用是合法的并可以与其通信。
3. 设备连接:
使用SDK提供的API来建立与设备的连接。
这可能涉及到设备的IP地址、端口号、用户名和密码等信息。
4. 设备控制:
一旦连接成功,你可以使用SDK提供的API来控制设备,例如调整摄像头的角度、切换视频源、设置报警等。
5. 数据获取:
从设备获取视频流、报警信息或其他数据。
6. 事件处理:
处理从设备接收到的各种事件,例如报警触发、视频丢失等。
7. 错误处理和日志记录:
为了确保应用的健壮性和稳定性,需要妥善处理可能发生的错误,并记录所有的日志以便调试。
8. 关闭连接和清理资源:
在不再需要与设备通信时,确保正确地关闭连接并释放所有占用的资源。
具体的实现细节和API调用方法会根据你使用的海康威视的SDK版本和文档有所不同。
为了获得最准确和最新的信息,建议直接查阅海康威视官方提供的SDK文档或联系他们的技术支持团队。
java sdk web 开发 执行流程
java sdk web 开发执行流程下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!java sdk web 开发执行流程随着互联网的发展,Web开发已经成为了人们日常生活中不可或缺的一部分。
vue+flv.js+SpringBoot+websocket实现视频监控与回放功能
vue+flv.js+SpringBoot+websocket实现视频监控与回放功能⽬录需求:思路:准备⼯作:实现:最后:需求:vue+springboot的项⽬,需要在页⾯展⽰出海康的硬盘录像机连接的摄像头的实时监控画⾯以及回放功能.之前项⽬⾥是纯前端实现视频监控和回放功能.但是有局限性.就是ip地址必须固定.新的需求⾥设备ip不固定.所以必须换⼀种思路.通过设备的主动注册,让设备去主动连接服务器后端通过socket推流给前端实现实时监控和回放功能;思路:1:初始化设备.后端项⽬启动时就调⽤初始化⽅法.2:开启socket连接.前端页⾯加载时尝试连接socket.3:点击播放,调⽤后端推流接⼝.并且前端使⽤flv.js实现播放.准备⼯作:1:vue项⽬引⼊flv.js。
npm install --save flv.jsmain.js⾥⾯引⼊import flvjs from ‘flv.js’;e(flvjs)但是这⾥我遇见⼀个坑.开发模式没有问题.但是打包之后发现ie浏览器报语法错误.不⽀持此引⽤.所以修改引⽤地址.在webpack.base.conf.js的module.exports下添加resolve: {extensions: ['.js', '.vue', '.json'],alias: {'vue$': 'vue/dist/vue.esm.js','@': resolve('src'),'flvjs':'flv.js/dist/flv.js'}},plugins下添加plugins: [new webpack.ProvidePlugin({flvjs:'flvjs',$: "jquery",jQuery: "jquery","window.jQuery": "jquery"})],最后页⾯引⼊时:import flvjs from "flv.js/dist/flv.js";2.准备⼀个硬盘录像机,并添加⼀个摄像头设备以做测试使⽤.硬盘录像机设置为主动注册模式.并配置好ip和端⼝以及⼦设备ID在设置⾥的⽹络设置⾥⾯3.后端搭建好websocket⼯具类包含通⽤的OnOpen,onClose,onError等⽅法.实现:1.项⽬启动开启设备服务.这个SDKLIB⾥⾯都有就不介绍了.2.页⾯加载尝试开启socket连接.//尝试连接websocketstartSocket(channelnum, device_value) {try {let videoWin = document.getElementById(this.currentSelect);if (flvjs.isSupported()) {let websocketName ="/device/monitor/videoConnection/" + channelnum + device_value;console.log("进⼊连接websocket", this.ipurl + websocketName);const flvPlayer = flvjs.createPlayer({type: "flv",//是否是实时流isLive: true,//是否有⾳频hasAudio: false,url: this.ipurl + websocketName,enableStashBuffer: true,},{enableStashBuffer: false,stashInitialSize: 128,});flvPlayer.on("error", (err) => {console.log("err", err);});flvjs.getFeatureList();flvPlayer.attachMediaElement(videoWin);flvPlayer.load();flvPlayer.play();return true;}} catch (error) {console.log("连接websocket异常", error);return false;}},这⾥传的参数是通道号和设备信息.⽆需在意.只要是唯⼀key就可以.2.socket连接成功后.调⽤后端推流⽅法实现播放.这⾥说⼀下后端的推流⽅法.调⽤SDK⾥的CLIENT_RealPlayByDataType⽅法/*** 实时预览拉流** @param loginHandler 登录句柄* @param channel 通道号* @param emDataType 回调拉出的码流类型,{@link NetSDKLib.EM_REAL_DATA_TYPE}*/public long preview(long loginHandler, int channel, NetSDKLib.fRealDataCallBackEx realDataCallBackEx, fRealDataCallBackEx2 realPlayDataCallback, int emDataType, int rType, boolean saveFile, int emAudioType) { _IN_REALPLAY_BY_DATA_TYPE inParam = new _IN_REALPLAY_BY_DATA_TYPE();_OUT_REALPLAY_BY_DATA_TYPE outParam = new _OUT_REALPLAY_BY_DATA_TYPE();inParam.nChannelID = channel;inParam.rType = rType;if(realDataCallBackEx!=null){inParam.cbRealData=realDataCallBackEx;}if(realPlayDataCallback!=null){inParam.cbRealDataEx = realPlayDataCallback;}inParam.emDataType = emDataType;inParam.emAudioType=emAudioType;if (saveFile) {inParam.szSaveFileName = UUID.randomUUID().toString().replace(".", "").replace("-", "") + "." + EMRealDataType.getRealDataType(emDataType).getFileType(); }NetSDKLib.LLong realPlayHandler = netsdk.CLIENT_RealPlayByDataType(new NetSDKLib.LLong(loginHandler), inParam, outParam, 3000);if (realPlayHandler.longValue() != 0) {netsdk.CLIENT_MakeKeyFrame(new NetSDKLib.LLong(loginHandler),channel,0);RealPlayInfo info = new RealPlayInfo(loginHandler, emDataType, channel, rType);realPlayHandlers.put(realPlayHandler.longValue(), info);} else {log.error("realplay failed.error is " + ENUMERROR.getErrorMessage(), this);}return realPlayHandler.longValue();}注意:这⾥的码流类型选择flv.回调函数⾥⾯:// 回调建议写成单例模式, 回调⾥处理数据,需要另开线程@Autowiredprivate WebSocketServer server;private Log log = Log.get(WebSocketRealDataCallback.class);@Overridepublic void invoke(NetSDKLib.LLong lRealHandle, int dwDataType, Pointer pBuffer, int dwBufSize, int param, Pointer dwUser) {RealPlayInfo info = DeviceApi.realPlayHandlers.get(lRealHandle.longValue());if (info != null && info.getLoginHandler() != 0) {//过滤码流byte[] buffer = pBuffer.getByteArray(0, dwBufSize);if (info.getEmDataType() == 0 || info.getEmDataType() == 3) {//选择私有码流或mp4码流,拉流出的码流都是私有码流if (dwDataType == 0) {(dwDataType + ",length:" + buffer.length + " " + Arrays.toString(buffer), WebSocketRealDataCallback.class);sendBuffer(buffer, lRealHandle.longValue());}} else if ((dwDataType - 1000) == info.getEmDataType()) {(dwDataType + ",length: " + buffer.length + Arrays.toString(buffer), WebSocketRealDataCallback.class);sendBuffer(pBuffer.getByteArray(0, dwBufSize), lRealHandle.longValue());}}}以及调⽤Websocket⾥⾯的sendMessageToOne发送给指定客户端/*** 发送数据* @param bytes* @param realPlayHandler*/private static void sendBuffer(byte[] bytes, long realPlayHandler) {/*** 发送流数据* 使⽤pBuffer.getByteBuffer(0,dwBufSize)得到的是⼀个指向native pointer的ByteBuffer对象,其数据存储在native,* ⽽webSocket发送的数据需要存储在ByteBuffer的成员变量hb,使⽤pBuffer的getByteBuffer得到的ByteBuffer其hb为null* 所以,需要先得到pBuffer的字节数组,⼿动创建⼀个ByteBuffer*/ByteBuffer buffer = ByteBuffer.wrap(bytes);server.sendMessageToOne(realPlayHandler, buffer);}这⾥传的参数是设备初始化的时候得到的登录句柄.以及流数据./*** 发送binary消息给指定客户端** @param realPlayHandler 预览句柄* @param buffer 码流数据*/public void sendMessageToOne(long realPlayHandler, ByteBuffer buffer) {//登录句柄⽆效if (realPlayHandler == 0) {log.error("loginHandler is invalid.please check.", this);return;}RealPlayInfo realPlayInfo = AutoRegisterEventModule.findRealPlayInfo(realPlayHandler);if(realPlayInfo == null){//连接已断开}String key = realPlayInfo.getChannel()+realPlayInfo.getSbbh();Session session = sessions.get(key);if (session != null) {synchronized (session) {try {session.getBasicRemote().sendBinary(buffer);byte[] bytes=new byte[buffer.limit()];buffer.get(bytes);} catch (IOException e) {e.printStackTrace();}}} else {//log.error("session is null.please check.", this);}}这样就实现了视频监控.效果:分享⼀下websocket代码:package sdk.webpreview.websocket;import cn.hutool.log.Log;import cn.hutool.log.LogFactory;import ponent;import javax.websocket.*;import javax.websocket.server.PathParam;import javax.websocket.server.ServerEndpoint;import java.io.FileOutputStream;import java.io.IOException;import java.nio.ByteBuffer;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.atomic.AtomicInteger;/*** @description websocket实现类*/@ServerEndpoint("/websocket/{realPlayHandler}")@Componentpublic class WebSocketServer {private static Log log = LogFactory.get(WebSocketServer.class);private FileOutputStream outputStream;/*** 静态变量,⽤来记录当前在线连接数。
海康sdk集成javaweb项目
海康sdk集成javaweb项目软件环境:myeclipse10,tomcat6.0.37,ie8硬件环境: 开发主机,硬盘录像机,摄像头Sdk:海康sdk(CH-HCNetSDK(Windows32)V4.2.8.1_5);海康websdk(20131213NetVideoActiveX23);硬盘录像机型号:DS-7204HW-SH根据sdk包提供的示例,java项目想调用sdk中的函数需要将sdk中的dll文件拷贝至项目根目录下,而javaweb项目根据实际部署服务器,需要将对应的dll文件拷贝至服务器安装目录下,由于我测试使用tomcat服务器,这里只列举tomcat下dll文件拷贝的路径Tomcat安装路径\apache-tomcat-6.0.37\bin例:D:\Program Files\apache-tomcat-6.0.37\bin这样在后台的代码中调用sdk中的方法就没有问题了,否则会报找不到类文件的异常,有关sdk中的方法详细说明参考sdk中的其他ppt和帮助文档。
同时在示例中有写好的sdk接口,常用的方法名称都有,直接调用就ok由于项目中基本都是jsp页面,功能的实现都在浏览器上,我们要完成模块就要用到websdk,其实websdk就是集成了ocx控件和js,大部分方法变成了js函数,结构可能有区别,但大部分方法名没有变化,这里需要注意的就是ocx控件的路径,如果找不到它那么当然就实现不了功能,我们同样把它拷贝至服务器下,路径有变化服务器安装路径\apache-tomcat-6.0.37\webapps\你的项目名\任意文件夹\ocx控件例:D:\Program Files\apache-tomcat-6.0.37\webapps\ycwssystem\codebase\NetVideoActiveX23.cab 一定要保证路径的正确性,可通过ie访问该路径看是否可访问到更多信息和相关配置,说明参考sdk,里面很详细,这里不再罗嗦部署在其他服务器如weblogic等的请自己寻找拷贝路径。
海康威视网络摄像机SDK二次开发(JAVA)(1-DEMO测试)
海康威视⽹络摄像机SDK⼆次开发(JAVA)(1-DEMO测试)本次测试的demo名为ClientDemo-NetBeansPro,同⽂件夹还有⼀个名为AlarmJavaDemo的都⼤同⼩异。
接下来开始了。
⼀、介绍⼀下环境:1. 开发⼯具:MyEclipse2. 系统Win7 643. 下载sdk:.根据⾃⼰机型下载所需的sdk,此处不多做赘述。
⼆、项⽬准备:1. ClientDemo-NetBeansPro⽂件夹下新建lib⽂件夹(⽅便管理),官⽅是说直接放在这个⽂件夹⾥,我个⼈觉得不好管理所以这样,你们也可以根据官⽅的指⽰,唯⼀的区别后⾯会讲到。
2. 将库⽂件⾥的移⼊,库⽂件⾥⼤多数都有,没有的话去我上传的demo⾥找也⾏。
下图就是所需要放⼊lib中的⽂件。
3. ⽤开发⼯具打开这个项⽬。
本项⽬中使⽤的jdk为JavaSE1.6,如果项⽬不能正常运⾏请检查jdk版本是否为1.6我刚开始试过1.8和1.7的似乎项⽬会报错,如果你没有就略过本条提⽰。
共2处开始修改:第⼀处,修改src-HCNetSDK.java中HCNetSDK接⼝中INSTANCE参数的加载库路径:第⼆处,修改src-HCNetSDK.java中PlayCtrl接⼝中INSTANCE参数的加载库路径,这就是上⾯提到的与另⼀个DEMO的区别之处,另⼀个DEMO不需要修改这个位置,其他⽆异。
与上⼀步骤的注意⼀致不多做赘述直接上图:三、启动找到ClientDemo.java⽂件(就src下第⼀个)。
右键运⾏即可。
运⾏后会打开⼀个ClientDemo的base窗⼝。
输⼊你们的⾃⼰的地址啥的,然后先点击注册,等注册成功后再点预览就可以了。
注册成功后就是下图的样⼦(刚开始是⼀个⿊点然后Device成功后Device变成⽂件夹)。
前期测试可以⾃⼰在ClientDemo.java⽂件中jButtonLoginActionPerformed()⽅法中long userID = lUserID.longValue();语句后输出⼀下userID,只要不是返回值不是-1就说明登陆成功了(前提是设备已经激活过了,激活很简单⾃⾏百度)。
java实现海康NVRDVR设备工作状态获取
java实现海康NVRDVR设备⼯作状态获取该功能需要到JNA的知识。
通过查阅海康设备⽹络SDK编程指南(DVR&NVR)可以知道海康SDK的调⽤⽅法都要同过如下过程:虚线框的流程是可选部分,不会影响其他流程和模块的功能使⽤。
具体的模块说明可以⾃⾏参考SDK开发⽂件。
主要功能代码:测试例⼦,因此虚线部分功能不实现1.初始化设备SDK:对整个⽹络SDK 系统的初始化,内存预分配等操作。
代码:HCNetSDK sdk = HCNetSDK.INSTANCE; _DVR_Init();//返回booleaan值2.注册设备:实现⽤户的注册功能,注册成功后,返回的⽤户ID 作为其他功能操作的唯⼀标识代码: NativeLong uid=new NativeLong(-1); NET_DVR_DEVICEINFO_V30 devinfo=new NET_DVR_DEVICEINFO_V30();//设备信息 uid=_DVR_Login_V30((string)IP,(short)PORT,(string)user,string()pwd,devinfo);//返回⼀个⽤户编号,同时将设备信息写⼊devinfo3.设备⼯作状态获取(参数配置模块):代码:NET_DVR_WORKSTATE_V30 devwork=new NET_DVR_WORKSTATE_V30(); _DVR_GetDVRWorkState_V30(uid, devwork);//返回Boolean值,判断是否获取设备能⼒ IntByReference ibrBytesReturned = new IntByReference(0);//获取IP接⼊配置参数 NET_DVR_IPPARACFG ipcfg=new NET_DVR_IPPARACFG(); ipcfg.write(); Pointer lpIpParaConfig =ipcfg.getPointer();_DVR_GetDVRConfig(uid,_DVR_GET_IPPARACFG,newNativeLong(0),lpIpParaConfig,ipcfg.size(),ibrBytesReturned); ipcfg.read();4.注销设备: 代码:_DVR_Logout(uid);5.释放SDK 代码:_DVR_Cleanup();详细例⼦:package ClientDemo;import com.sun.jna.NativeLong;import com.sun.jna.Pointer;import com.sun.jna.ptr.IntByReference;import _DVR_DEVICEINFO_V30;import _DVR_IPPARACFG;import _DVR_WORKSTATE_V30;public class Device_demo {public static void main(String[] args) {// TODO Auto-generated method stubHCNetSDK sdk = HCNetSDK.INSTANCE;if(!_DVR_Init()){System.out.println("SDK初始化失败");return ;}NativeLong uid=new NativeLong(-1);NET_DVR_DEVICEINFO_V30 devinfo=new NET_DVR_DEVICEINFO_V30();//设备信息String ip="192.168.10.191";short port=8000;uid=_DVR_Login_V30(ip,port,"admin","hk123456",devinfo);//返回⼀个⽤户编号,同时将设备信息写⼊devinfoint Iuid=uid.intValue();if(Iuid<0){System.out.println("设备注册失败");return ;}NET_DVR_WORKSTATE_V30 devwork=new NET_DVR_WORKSTATE_V30();if(!_DVR_GetDVRWorkState_V30(uid, devwork)){//返回Boolean值,判断是否获取设备能⼒System.out.println("返回设备状态失败");}IntByReference ibrBytesReturned = new IntByReference(0);//获取IP接⼊配置参数NET_DVR_IPPARACFG ipcfg=new NET_DVR_IPPARACFG();ipcfg.write();Pointer lpIpParaConfig =ipcfg.getPointer();_DVR_GetDVRConfig(uid,_DVR_GET_IPPARACFG,new NativeLong(0),lpIpParaConfig,ipcfg.size(),ibrBytesReturned); ipcfg.read();System.out.print("IP地址:"+ip);System.out.println("|设备状态:"+devwork.dwDeviceStatic);//0正常,1CPU占⽤率过⾼,2硬件错误,3未知//显⽰模拟通道for(int i=0;i< devinfo.byChanNum;i++){System.out.print("Camera"+i+1);//模拟通道号名称System.out.print("|是否录像:"+devwork.struChanStatic[i].byRecordStatic);//0不录像,不录像System.out.print("|信号状态:"+devwork.struChanStatic[i].bySignalStatic);//0正常,1信号丢失System.out.println("|硬件状态:"+devwork.struChanStatic[i].byHardwareStatic);//0正常,1异常}_DVR_Logout(uid);_DVR_Cleanup();}}输出:。
Web3.2_控件开发包编程指南(海康威视)
Web 3.2 控件开发包编程指南声明非常感谢您购买我公司的产品,如果您有什么疑问或需要请随时联系我们。
●我们已尽量保证手册内容的完整性与准确性,但也不免出现技术上不准确、与产品功能及操作不相符或印刷错误等情况,如有任何疑问或争议,请以我司最终解释为准。
●产品和手册将实时进行更新,恕不另行通知。
●本手册中内容仅为用户提供参考指导作用,请以开发包实际内容为准。
目录声明 (I)目录 (II)1 简介 (1)1.1内容简介 (1)1.2支持设备 (1)1.3运行环境 (1)2 版本更新 (2)3 错误码及说明 (4)3.1异常事件代码 (4)3.2错误码 (4)4 函数调用顺序 (6)5 函数说明 (7)5.1插件初始化 (7)5.1.1 检查浏览器是否支持无插件 (7)5.1.2 检查插件是否已安装 (7)5.1.3 Web插件初始化(包含插件事件注册) (7)5.1.4 嵌入播放插件 (8)5.1.5 在网页中写入插件 (8)5.2获取设备信息 (8)5.2.1 根据域名获取设备IP (8)5.2.2 登录设备 (9)5.2.3 登出设备 (10)5.2.4 获取设备基本信息 (10)5.2.5 获取模拟通道 (10)5.2.6 获取数字通道 (11)5.2.7 获取零通道 (12)5.2.8 录像搜索 (12)5.2.9 获取语音对讲通道 (13)5.2.10 获取端口 (14)5.3播放及播放控制 (14)5.3.1 开始预览 (14)5.3.2 开始回放 (14)5.3.3 开始倒放 (15)5.3.4 停止播放 (16)5.3.5 单帧 (16)5.3.6 暂停 (16)5.3.7 恢复播放 (17)5.3.8 减速播放 (17)5.3.9 加速播放 (17)5.3.10 获取OSD时间 (17)5.3.11 打开声音 (18)5.3.13 设置音量 (18)5.3.14 抓图 (18)5.3.15 无插件获取图片资源二进制数据 (19)5.3.16 画面分割 (19)5.4录像 (19)5.4.1 开始录像 (19)5.4.2 停止录像 (19)5.5录像下载 (20)5.5.1 开始下载 (20)5.5.2 开始按时间下载 (20)5.5.3 获取录像下载状态 (20)5.5.4 获取录像下载进度 (20)5.5.5 停止录像下载 (21)5.6语音对讲 (21)5.6.1 开始语音对讲 (21)5.6.2 停止语音对讲 (21)5.7云台控制 (21)5.7.1 云台控制 (21)5.7.2 设置预置点 (22)5.7.3 调用预置点 (22)5.8图像放大 (22)5.8.1 开启电子放大 (22)5.8.2 关闭电子放大 (22)5.8.3 开启3D放大 (22)5.8.4 关闭3D放大 (23)5.8.5 全屏播放 (23)5.9设备维护 (23)5.9.1 导出配置参数 (23)5.9.2 导入配置参数 (23)5.9.3 恢复默认参数 (23)5.9.4 设备重启 (24)5.9.5 开始升级 (24)5.9.6 获取升级状态 (24)5.9.7 获取升级进度 (25)5.9.8 停止升级 (25)5.9.9 重连 (25)5.9.10 打开远程配置 (25)5.10插件信息维护 (25)5.10.1 插件版本比较 (25)5.10.2 获取插件的本地配置参数 (26)5.10.3 设置插件的本地配置参数 (26)5.10.4 获取播放窗口信息 (26)5.11窗口多边形绘图 (27)5.11.2 设置绘图模式 (27)5.11.3 设置多边形信息 (27)5.11.4 设置多边形 (28)5.11.5 获取多边形信息 (28)5.11.6 清空多边形信息 (29)5.12其它 (29)5.12.1 选择文件夹或者文件路径 (29)5.12.2 异步选择文件夹或者文件路径 (29)5.12.3 获取上一次的错误码 (29)5.12.4 发送HTTP请求 (29)5.12.5 设置封装格式 (30)5.12.6 设备抓图 (30)1简介1.1内容简介Web控件V3.2基于ActiveX和NPAPI开发,接口封装于javascript脚本,以javascript接口形式提供用户集成,支持网页上实现预览、回放、云台控制等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
海康sdk集成javaweb项目
软件环境:myeclipse10,tomcat6.0.37,ie8
硬件环境: 开发主机,硬盘录像机,摄像头
Sdk:海康sdk(CH-HCNetSDK(Windows32)V4.2.8.1_5);
海康websdk(20131213NetVideoActiveX23);
硬盘录像机型号:DS-7204HW-SH
根据sdk包提供的示例,java项目想调用sdk中的函数需要将sdk中的dll文件拷贝至项目根目录下,而javaweb项目根据实际部署服务器,需要将对应的dll文件拷贝至服务器安装目录下,由于我测试使用tomcat服务器,这里只列举tomcat下dll文件拷贝的路径
Tomcat安装路径\apache-tomcat-6.0.37\bin
例:D:\Program Files\apache-tomcat-6.0.37\bin
这样在后台的代码中调用sdk中的方法就没有问题了,否则会报找不到类文件的异常,有关sdk中的方法详细说明参考sdk中的其他ppt和帮助文档。
同时在示例中有写好的sdk接口,常用的方法名称都有,直接调用就ok
由于项目中基本都是jsp页面,功能的实现都在浏览器上,我们要完成模块就要用到websdk,其实websdk就是集成了ocx控件和js,大部分方法变成了js函数,结构可能有区别,但大部分方法名没有变化,这里需要注意的就是ocx控件的路径,如果找不到它那么当然就实现不了功能,我们同样把它拷贝至服务器下,路径有变化
服务器安装路径\apache-tomcat-6.0.37\webapps\你的项目名\任意文件夹\ocx控件
例:
D:\Program Files\apache-tomcat-6.0.37\webapps\ycwssystem\codebase\NetVideoActiveX23.cab 一定要保证路径的正确性,可通过ie访问该路径看是否可访问到
更多信息和相关配置,说明参考sdk,里面很详细,这里不再罗嗦
部署在其他服务器如weblogic等的请自己寻找拷贝路径。