mayun_sdk

1.1.5 • Public • Published

[TOC]

H5-SDK-WEBRTC 接口文档 v1.1.1(2019-08-15更新)

1 - 更新要点:

  • connect 废弃回调 ,采用promise

  • connect 参数传参的方式变更,以及增加了userId

    例:
    gp.connect({
        devId:"B2E84A45BDF8",
        token:"FC85E15F7C5DCD7DC1D6127DC957307B",
        userId:"MaYun1565854673256",
    },"remoteVideo")
  • init增加cover,log参数

    cover: 默认false, 不支持自动播放的时候 , 为true时会存在一个点击的遮照 , 为false时,connect时会为其反回一个10052的错误码去自定义点击遮罩

    log: 默认false, 为true时可打印日志交互日志, 为false时,取消

  • isSupportRTC 是否支持webRTC

    let res = gp.isSupportRTC;
    {code:***, msg:***}
    状态码说明:
        code:0  支持webRTC
        code:-1  不支持webRTC

2 - 摘要

  • 兼容性问题

  • 安全性

  • 状态码说明

     
    0#成功
    -1#其它错误
    ---------------------------------------
    1001x:初始化传参相关错误
    10011#ws地址格式错误
    10012#wss地址格式错误
    10013#设置窗体失败,采用默认窗体
    10014#缺少必填参数
    10015#sdk实例化失败,缺少必填参数
    ---------------------------------------
    1002x:设备相关错误
    #10021#待定 (目前不存在该状态)
    10022#设备不可用,未注册
    10023#设备被占用
    10024#设备离线,断开
    10025#token校验失败
    10026#OS类型未找到
    ---------------------------------------
    1003x:连接相关错误
    10031#信令未连接
    10032#客户端与信令断开
    10033#设备未连接
    10034#连接超时,断开
    10035#服务端视频流开关已关闭
    ---------------------------------------
    1004x:监听日志状态码
    10041#监听操作相关信息
    10042#rtc相关信息,每20s更新一次
     
    1005x:渲染相关状态码
    10051#不支持自动播放
    10052#加载画面失败,请联系码云code:10052

    注释: 错误状态码可能后续会有更新

3 - 兼容性

目前最新版本对浏览器支持情况如下:

平台 chrome58+ Safari 11+ 微信浏览器 QQ浏览器 360浏览器(最新)
Android × ×
IOS × ? ?
macOS × × × × ×
Windows × × × ×

浏览器说明 :

  1. 测试安卓手机厂商中自带浏览器 : 小米浏览器,华为浏览器,魅族浏览器都是不支持的(这部分浏览器可能也是基于chrome内核,但是此类浏览器是不支持的)
  2. ? - 代表着目前还不确认
  3. 360浏览器android平台,部分设备会出现音频声音暂小或无的情况

4 - 使用环境

4.1 - 引入方式

加载SDK前,先引用 : https://webrtc.github.io/adapter/adapter-latest.js

调用环境 格式 地址
browser js文件 http://www.288.com/sdk/js/gp.min.js
node npm包 npm install mayun_sdk

5 - 接口介绍

回调说明

{
    code:0,
    msg:"------------"
}
or
{
    code:0,
    data:[] / {} / "" / 12
    msg:"------------"
}

5.1 - SDK实例创建

brower 和 npm实例创建代码如下:

 #brower
 1. <script type="text/script" src="http://www.288.com/sdk/js/gp.min.js"></script>
 2. let gp = new MaYun(options,,fnSuc,fnErr);
 #npm
 1. npm install mayun_sdk
 2. import MaYun from 'mayun_sdk';
 3. let gp = new MaYun(options,fnSuc,fnErr);
  • options参数说明
let options = {
    ws:`http下的信令地址`  //http下必填
    wss:`https下的信令地址`    //https下必填
    iceServers:{
     stun:{
            uri:"stun:p2p地址",
        },
        turn_udp:{
            uri:"turn:转发地址?transport=udp",
                username:"demo",
                    credential:"123456"
        },
        turn_tcp:{
            uri:"turn:转发地址?transport=tcp",
            username:"demo",
            credential:"123456"
        }
    },   //必填
    timeout:20*1000    //连接超时时间, 非必填  默认30*1000
    screen:{
     width:720
     height:360
    },
    log:true | false {默认: false}  //内部日志的打印
    cover:true | false {默认:false}  //如有不支持自动播放,true会有一个遮照来点击播放, false会为你返回一个10051错误码,自己定义遮照点击处理
}
 
/*
    - ws : http下的信令连接
    - wss : https下的信令连接
    - iceServers : 转发、p2p服务器地址配置
    - screen : 窗体大小 比例16:9
*/
  • fnSuc 参数

    状态码 说明
    0 SDK实例初始化成功 ,可能会出现10013状态
    10013 设置窗体失败,采用默认窗体 该状态会出现0状态
    10014 缺少必填参数

5.2 - 浏览器是否支持

isSupportRTC- 是否支持webRTC

let res = gp.isSupportRTC;
 
/**
 ** res {code:***, msg:***} 状态码说明:
    code:0  支持webRTC
    code:-1  不支持webRTC
*/

5.3 - 连接云设备

connect - 连接云设备

/*
* 连接云设备
* @param options 连接所需要的参数
* @param ele[string] 节点id
* @returns {Promise<void>}
*/
#推荐
gp.connect(options,ele).then(data => {
    /**
     data状态码说明:
     0 - 连接成功
     10014 - 缺少必填参数
     10015 - sdk实例化失败,缺少必填参数
     10021 - 设备被占用,连接失败
        10022 - 设备不可用,未注册
     10025 - token校验失败
     10031 - 信令未连接
     10034 - 连接超时,断开
 
 
    */
}).catch(err => {
    ...
})
gp.connect(devId,token,ele,success,error)  //遗弃
 
--------------options参数介绍begin-----------------
# devId(String) - 云设备ID
# token(String) - token校验
# userId(String) - 连接的用户ID
例: {
    devId:'B2E84A45BDF8',
    token:'A37D6DBFCDBB4DC2C97C83E4A98EEED8',
    userId:'MaYun1565840775686'
}
---------------------end----------------------------
 
 
 
  • data | 状态码 | 说明 | | ------ | --------------------------- | | 0 | 连接成功 | | 10014 | 缺少必填参数 | | 10015 | sdk实例化失败,缺少必填参数 | | 10022 | 设备不可用,未注册 | | 10023 | 设备被占用 | | 10025 | token校验失败 | | 10031 | 信令未连接 | | 10034 | 连接超时,断开 | | 10035 | 服务端视频流开关已关闭 | | 10051 | 不支持自动播放 | | 10052 | 加载页面失败 |

5.4 - 监听云设备是否断开或连接超时

onServiceStatus

/*
* 监听云设备是否断开
* @param event[json] 状态消息
*/
gp.onServiceStatus(event => {
    console.log("onStatus --- ", event);
});
状态码 说明
10024 设备离线,断开 (2s可做连接操作,) - 重要
10032 web客户端与信令断开
10035 服务端视频流开关已关闭 - SDK会自动断开视频流
10041 操作相关信息 - 目前无实际作用,只是查看相关操作信息
10042 rtc相关信息,每20s更新一次(无实际作用,辅助日志)
{
    code: 10041
    data: {type: "down", dot: 1, mouses: [{x: 195, y: 83.5}]}
    msg: "操作成功"
}

5.5 - 断开连接

disconnect

gp.disconnect().then(data => {
    /**
     data状态码说明
     0 - 断开成功
    */
});

5.6 - 操作流 - 指令处理

5.6.1 - 按键综合处理
  • type - 按键类型 String

    back: 返回键

    home: home键 {功能禁用}

    menu: menu键 {功能禁用}

    volume_up: 音量增加

    volume_down: 音量减少

gp.onKeys(type,success,error);
# type(String) - 按键类型
# success(fun) - 操作成功回调
# error(fun) - 操作失败回调
5.6.2 - Back返回键
gp.onKeysBack(success,error);
# success(fun) - 操作Back成功回调
# error(fun) - 操作Back失败回调
5.6.3 - 音量+,音量-
gp.onKeysVolAdd(success,error);
# success(fun) - 操作Back成功回调
# error(fun) - 操作Back失败回调
 
gp.onKeysVolReduce(success,error);
# success(fun) - 操作Back成功回调
# error(fun) - 操作Back失败回调
5.6.4 - Home键

暂未开放

gp.onKeysHome(success,error);
// success(fun) - 操作Back成功回调
// error(fun) - 操作Back失败回调
5.6.5 - Menu (Recent)

暂未开放

gp.onKeysMenu(success,error);
// success(fun) - 操作Back成功回调
// error(fun) - 操作Back失败回调

6. 更新记录

v1.1.2

  • 修复加载连接,会出现坐标不正确的问题
  • 坐标计算调整 16:9 调整为 640:368 (协议包1.2.2.111以上版本)

Readme

Keywords

none

Package Sidebar

Install

npm i mayun_sdk

Weekly Downloads

1

Version

1.1.5

License

ISC

Unpacked Size

868 kB

Total Files

18

Last publish

Collaborators

  • begoliu