萤石云摄像HTTP接口云台控制开发

前言

项目开发中使用萤石云平台提供的直播地址获取视频流,与Web端开发不同的是,想要通过该方法控制摄像头移动、放大和缩小需要使用Http接口提供的方法完成相应的操作。

1.开始云台控制

接口功能:对设备进行开始云台控制,开始云台控制之后必须先调用停止云台控制接口才能进行其他操作,包括其他方向的云台转动。

萤石云摄像HTTP接口云台控制开发

 

萤石云摄像HTTP接口云台控制开发

 

2.停止云台控制

接口功能:设备停止云台控制。

萤石云摄像HTTP接口云台控制开发

 

萤石云摄像HTTP接口云台控制开发

 

Html:

 

<div class="layui-col-xs12 layui-col-sm4" style="color:#104E8B;">
    <div class="layuiadmin-card-text" style="width:750px;hight:750px;color:#104E8B;">
        <div class="layui-text-top" style="color:#104E8B;" ><i class="layui-icon layui-icon-video"></i>摄像头1</div>
        <video id="player1" poster="" controls playsInline webkit-playsinline autoplay style="width:100%;hight:100%;border:#000080 1px solid">
        <source src="直播地址" type="application/x-mpegURL" />
        <p class="layui-text-bottom">
        <button class="layui-icon layui-icon-up" lay-submit="" lay-filter="add" οnclick="control(0)"></button>
        <button class="layui-icon layui-icon-down" lay-submit="" lay-filter="add" οnclick="control(1)"></button>
        <button class="layui-icon layui-icon-left" lay-submit="" lay-filter="add" οnclick="control(2)"></button>
        <button class="layui-icon layui-icon-right" lay-submit="" lay-filter="add" οnclick="control(3)"></button>
        <button class="layui-icon icon-pause" lay-submit="" lay-filter="add" οnclick="stop()"></button>
        <button class="layui-icon icon-plus-circle" lay-submit="" lay-filter="add" οnclick="control(8)"></button>
        <button class="layui-icon icon-minus-circle" lay-submit="" lay-filter="add" οnclick="control(9)"></button>
        </p>
    </div>
</div>
根据操作命令设置control的参数,操作命令:0-上,1-下,2-左,3-右,8-放大,9-缩小
 

Js:

<link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" href="../../layuiadmin/layui/font/font_2wmcsfamra2/iconfont.css">
<script src="../../layuiadmin/layui/layui.js"></script>
//这些css和layui.js可以在网上下载
 
<script>
    layui.config({
        base: '../../layuiadmin/'  //静态资源所在路径
    }).extend({
        index: 'lib/index'  //主入口模块
    }).use(['index', 'sample']);
    //data里面封装的就是请求的参数
    data={
        accessToken: '个人token,7天就会过期',
        deviceSerial:'个人设备号',
        channelNo:'设备通道号'
    }
 
    //开始控制
    var control=function (direction) {
        data.direction=direction;//控制方式
        data.speed='2';//转动速度
        layui.use(['jquery', 'layer'], function(){
            var $ = layui.$
                ,layer = layui.layer;
            $.post('https://open.ys7.com/api/lapp/device/ptz/start',data,function(res){
                if(res.code==200){
                    layer.msg(res.msg, {time: 2000});
                }else{
                    layer.msg(res.msg, {time: 2000});
                }
            },'json');
            return false;
        });
    }
 
    //停止转动
    var stop=function () {
        layui.use(['jquery', 'layer'], function(){
            var $ = layui.$
                ,layer = layui.layer;
            $.post('https://open.ys7.com/api/lapp/device/ptz/stop',data,function(res){
                if(res.code==200){
                    layer.msg(res.msg, {time: 2000});
                }else{
                    layer.msg(res.msg, {time: 2000});
                }
            },'json');
            return false;
        });
    }
</script>