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