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

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 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 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 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 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 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 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();
    }

你可能感兴趣的:(萤石开放平台对接海康摄像头(一))