美文网首页
萤石开放平台对接海康摄像头(一)

萤石开放平台对接海康摄像头(一)

作者: 一个神奇的女码农 | 来源:发表于2020-08-26 17:29 被阅读0次

    1.接新的开放平台第一件事当然是注册咯

    点击下方链接注册(略微有点像打广告,但是我没有!)
    萤石开放平台

    2.添加设备

    我这边是通过序列号添加的设备

    我的资源->设备列表->添加设备
    添加设备

    序列号与验证码都在摄像机机身上,找一下就能找到
    这边需要注意,一个设备只能被一个账号绑定
    绑定成功后就能看见一条设备信息


    设备信息

    测试设备监控是否正常

    如下我们可以看到一个直播地址跟一个监控地址
    监控地址是预览摄像头情况的,这边就不做测试,反正能看


    测试播放

    直播地址我们点进去的时候会可能会提示摄像头已经加密(还是录像加密忘记了),根据提示信息把加密关闭就好了,就能看到4个直播地址,这个地址就是我目前的终极目标,需要提供给前端大佬播放视频使用.点击测试播放可以测试摄像头是否正常,我这边遇到一个问题就是使用http地址的时候只能播放两秒就卡主了,被迫转向RTMP地址,是流畅的,比较懒后期有需要在解决~


    直播地址

    调用萤石接口获取直播地址

    当然我的终极目标还是得用我深爱的java获取到直播地址,不得不说,萤石这个开放平台的API,太好使了,无脑调用就行.
    萤石API地址

    这边我们先获取一下我们的必需品:密钥
    在 我的账号->应用信息下


    密钥

    以下是我今天写的demo

    public class HaiKangTest {
    
        private static String appKey = "";
        private static String appSecret = "";
        private static String accessToken = "";
    
        public static void main(String[] args) {
    //        addV();
    //        capture();
    //        videoList();
            off();
    
    
        }
    
        private static void off(){
            String url = "https://open.ys7.com/api/lapp/device/encrypt/off";
            Map<String, String> map = new HashMap<>();
            map.put("accessToken", accessToken);
            // 设备序列号
            map.put("deviceSerial", "deviceSerial");
            // 通道
            map.put("validateCode", "validateCode");
            String doPost = HttpPostUtil.doPost(url, map);
            JSONObject jsonObject = JSONArray.parseObject(doPost);
            System.out.println(doPost);
    
        }
    
        /**
         * 直播地址获取
         */
        private static void videoList(){
    
            String url = "https://open.ys7.com/api/lapp/live/video/list";
            Map<String, String> map = new HashMap<>();
            map.put("accessToken", accessToken);
           
            map.put("pageStart", "0");
         
            map.put("pageSize", "10");
    
            String doPost = HttpPostUtil.doPost(url, map);
            JSONObject jsonObject = JSONArray.parseObject(doPost);
            System.out.println(doPost);
    
        }
    
        /**
         * 抓拍
         * 萤石图片只保存2个小时,需后期保存到自己的服务器上
         * 请勿频繁调用,建议每个摄像头调用的间隔4s以上
         */
        private static void capture(){
    
            String url = "https://open.ys7.com/api/lapp/device/capture";
            Map<String, String> map = new HashMap<>();
            map.put("accessToken", accessToken);
            // 设备序列号
            map.put("deviceSerial", "deviceSerial");
            // 通道
            map.put("channelNo", "1");
    
            String doPost = HttpPostUtil.doPost(url, map);
            JSONObject jsonObject = JSONArray.parseObject(doPost);
            Object data = jsonObject.get("data");
            Object code = jsonObject.get("code");
            Object msg = jsonObject.get("msg");
            System.out.println(data);
    
        }
        /**
         * 删除设备
         */
        private static void delete(){
            // 获取 AccessToken
            String url = "https://open.ys7.com/api/lapp/device/delete";
            Map<String, String> map = new HashMap<>();
            map.put("accessToken", accessToken);
            // 设备序列号
            map.put("deviceSerial", "deviceSerial");
    
            String doPost = HttpPostUtil.doPost(url, map);
            JSONObject jsonObject = JSONArray.parseObject(doPost);
            Object code = jsonObject.get("code");
            Object msg = jsonObject.get("msg");
            if (!code.equals("200")){
                System.out.println(msg);
            }
            if (code.equals("200")){
                System.out.println("设备删除成功");
            }
            System.out.println(doPost);
        }
    
        /**
         * 添加设备
         */
        private static void addV(){
            // 获取 AccessToken
            String url = "https://open.ys7.com/api/lapp/device/add";
            Map<String, String> map = new HashMap<>();
            map.put("accessToken", accessToken);
            // 设备序列号
            map.put("deviceSerial", "deviceSerial");
            // 设备验证码
            map.put("validateCode", "validateCode");
            String doPost = HttpPostUtil.doPost(url, map);
            JSONObject jsonObject = JSONArray.parseObject(doPost);
            Object code = jsonObject.get("code");
            Object msg = jsonObject.get("msg");
            if (!code.equals("200")){
                System.out.println(msg);
            }
            if (code.equals("200")){
                System.out.println("设备添加成功");
            }
            System.out.println(doPost);
        }
    
        /**
         *
         * 获取并解析token
         * @return
         */
        private static String getAccessToken(){
            // 获取 AccessToken
            String url = "https://open.ys7.com/api/lapp/token/get";
            Map<String, String> map = new HashMap<>();
            map.put("appKey", appKey);
            map.put("appSecret", appSecret);
            String doPost = HttpPostUtil.doPost(url, map);
            JSONObject jsonObject = JSONArray.parseObject(doPost);
            Object data = jsonObject.get("data");
            Object code = jsonObject.get("code");
            Object msg = jsonObject.get("msg");
            JSONObject object = JSONArray.parseObject(data.toString());
            Object accessToken = object.get("accessToken");
            Object expireTime = object.get("expireTime");
    
            return accessToken.toString();
        }
    

    相关文章

      网友评论

          本文标题:萤石开放平台对接海康摄像头(一)

          本文链接:https://www.haomeiwen.com/subject/bzkfsktx.html