[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 | √ | × | × | × | × |
浏览器说明 :
- 测试安卓手机厂商中自带浏览器 : 小米浏览器,华为浏览器,魅族浏览器都是不支持的(这部分浏览器可能也是基于chrome内核,但是此类浏览器是不支持的)
- ? - 代表着目前还不确认
- 360浏览器android平台,部分设备会出现音频声音暂小或无的情况
4 - 使用环境
4.1 - 引入方式
加载SDK前,先引用 : https://webrtc.github.io/adapter/adapter-latest.js
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);
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;
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
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 => {
});
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失败回调
暂未开放
gp.onKeysMenu(success,error);
// success(fun) - 操作Back成功回调
// error(fun) - 操作Back失败回调
6. 更新记录
v1.1.2