[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 支持webRTCcode:-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 | √ | × | × | × | × |
浏览器说明 :
- 测试安卓手机厂商中自带浏览器 : 小米浏览器,华为浏览器,魅族浏览器都是不支持的(这部分浏览器可能也是基于chrome内核,但是此类浏览器是不支持的)
- ? - 代表着目前还不确认
- 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 = gpisSupportRTC; /** ** 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;
状态码 | 说明 |
---|---|
10024 | 设备离线,断开 (2s可做连接操作,) - 重要 |
10032 | web客户端与信令断开 |
10035 | 服务端视频流开关已关闭 - SDK会自动断开视频流 |
10041 | 操作相关信息 - 目前无实际作用,只是查看相关操作信息 |
10042 | rtc相关信息,每20s更新一次(无实际作用,辅助日志) |
code: 10041data: type: "down" dot: 1 mouses: x: 195 y: 835msg: "操作成功"
5.5 - 断开连接
disconnect
gp;
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以上版本)