海康萤石摄像头SDK Java(一)java本地调用摄像头

本文仅仅实现java 本地调用海康摄像头,后续的视频码解析正在研究。

 

默认环境:

              1.从官网下载好对应OS的SDK。

              2.连通摄像头。

              3.搭建Java项目,集成sdk中的java demo。

 

先看效果:

 

正文:

   此类所在位置:

 

  内容:

import ClientDemo.HCNetSDK;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import ClientDemo.HCNetSDK.*;
import com.sun.jna.examples.win32.W32API.HWND;

import java.awt.*;
import javax.swing.*;

/**
 * @Title: MyDemo1
 * @Description:
 * @Author: Niucd
 * @Date: 2019/9/3 11:21
 * @Version: 1.0
 */
public class CameraDemo {
    static String ip = "169.254.121.11";
    static short port = 8000;
    static String user = "admin";
    static String pwd = "STGXQM";

    /**
     *  Main函数
     *  DateTime: 2019/9/3 11:21
     */
     public static void main(String[] args){
         //
         //1>初始化设备SDK:对整个网络SDK 系统的初始化,内存预分配等操作。-----------------------------
         HCNetSDK sdk = HCNetSDK.INSTANCE;
         boolean initSuc = sdk.NET_DVR_Init();
         if(initSuc){
             System.out.println("初始化设备环境成功。。。");
         }else{
             System.out.println("初始化设备环境失败。。。");
             return;
         }
         Panel panelRealplay = createPanel();
         //
         //2>注册设备:实现用户的注册功能,注册成功后,返回的用户ID 作为其他功能操作的唯一标识---------------
         NativeLong lUserID=new  NativeLong(-1);
         NET_DVR_DEVICEINFO_V30 devinfo=new NET_DVR_DEVICEINFO_V30();//设备信息
         lUserID=sdk.NET_DVR_Login_V30(ip,port,user,pwd,devinfo);//返回一个用户编号,同时将设备信息写入devinfo
         if(lUserID.longValue() > -1){
             System.out.println("设备注册成功。。。");
             System.out.println("lUserID:"+lUserID);
         }else{
             System.out.println("设备注册失败。。。");
             System.out.println("错误码:"+sdk.NET_DVR_GetLastError());
         }
         //
         //获取设备资源信息
         NativeLong lRealPlayHandle;
         HWND hwnd = new HWND(Native.getComponentPointer(panelRealplay));  //获取窗口句柄
         NET_DVR_CLIENTINFO net_dvr_clientinfo = new NET_DVR_CLIENTINFO();
         net_dvr_clientinfo.hPlayWnd = hwnd;         //需要SDK解码时句柄设为有效值,仅取流不解码时可设为空
         net_dvr_clientinfo.lChannel = new NativeLong(1);       //预览通道号
         net_dvr_clientinfo.lLinkMode = new NativeLong(0);       //0-主码流,1-子码流,2-码流3,3-码流4,以此类推
         net_dvr_clientinfo.sMultiCastIP = ip;
         lRealPlayHandle = sdk.NET_DVR_RealPlay_V30(lUserID, net_dvr_clientinfo, null, null, true);





         //---------------------------------------
//         try { Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}
//         //关闭预览
//         sdk.NET_DVR_StopRealPlay(lRealPlayHandle);
//         //注销用户
//         sdk.NET_DVR_Logout(lUserID);
//         //释放SDK资源
//         sdk.NET_DVR_Cleanup();

     }

     /*
     创建播放面板
      */
     public static Panel createPanel(){
         JFrame jframe = new JFrame("视频播放测试");//创建面板
         Panel panel = new Panel();//容器
         jframe.add(panel).setBackground(Color.WHITE);
         jframe.setSize(800,600);
         jframe.setLocationRelativeTo(null);//在屏幕中居中显示
         jframe.setVisible(true);
         return panel;
     }



}

              

 

 

 

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值