更新时间:2020-12-26
请求接口
初始化配置
let octopusRTCWX = new OctopusRTCWX(option)
| 参数 | 含义 | 类型 | 必填 |
|---|
| appId | appId | String | 是 |
| userId | 用户 id | String | 是 |
| userName | 用户名 | String | 否 |
| env | 环境 test production | String | 否(默认 production) |
| mediaType | 加入方式 0:音视频 1:音频 | Number | 否(默认音视频) |
初始化
登录房间
octopusRTCWX.login(roomId,role,token,success,error)
| 参数 | 含义 | 类型 | 必填 |
|---|
| roomId | 房间 id | String | 是 |
| role | 角色类型 1:主播 2:观众 | Number | 是 |
| token | 登录验证 | String | 是 |
| success | 成功回调函数 | function(streamList) | 是 |
| error | 失败回调函数 | function(err) | 是 |
streamList 数组中 stream 对象结构
| 参数 | 含义 | 类型 |
|---|
| streamId | 流 id | String |
| userId | 流对应的用户 id | String |
| roomId | 房间号 | String |
登出房间
调用之后会向 OctopusRTCWX 服务器发送登出信令
开始推流
octopusRTCWX.startPublishingStream(streamId)
| 参数 | 含义 | 类型 | 必填 |
|---|
| streamId | 推流 id | Sting | 是 |
结束推流
octopusRTCWX.stopPublishingStream(streamId)
| 参数 | 含义 | 类型 | 必填 |
|---|
| streamId | 流 id | String | 是 |
开始播放流
octopusRTCWX.startPlayingStream(streamId)
| 参数 | 含义 | 类型 | 必填 |
|---|
| streamId | 拉流 id | String | 是 |
停止播放流
octopusRTCWX.stopPlayingStream(streamid)
| 参数 | 含义 | 类型 | 必填 |
|---|
| streamId | 流 id | String | 是 |
播放状态
octopusRTCWX.updatePlayerState(streamId, event, type)
| 参数 | 含义 | 类型 | 必填 |
|---|
| streamId | 流 id | sting | 是 |
| event | 事件 | Object | 是 |
| type | 类型 0: 拉流 1: 推流 | Number | 是 |
- 在小程序
livePlayer 和 livePusher 组件中设置 bindstatechange 属性,小程序回调的事件完全透传给 SDK
- SDK 底层会根据
event 进行流状态更新,必须回调给 SDK
网络状态通知事件
octopusRTCWX.updatePlayerNetStatus(streamId, event, type)
| 参数 | 含义 | 类型 | 必填 |
|---|
| streamId | 流 id | String | 是 |
| event | 事件 | Object | 是 |
| type | 类型 0: 拉流 1: 推流 | Number | 是 |
- 在小程序
livePlayer 和 livePusher 组件中设置 bindnetstatus 属性,小程序回调的事件完全透传给 SDK
- SDK 底层会根据
event 进行流状态更新,必须回调给 SDK
重新加入
- 在
wx.onNetworkStatusChange 的事件中, 判断网络状态, 如果网络是断网又恢复的状态,需要调用 restart 函数
销毁
回调接口
房间连接断开通知
octopusRTCWX.onDisconnect(err)
| 参数 | 含义 | 类型 |
|---|
| err.code | 错误码 | Number |
| err.msg | 错误信息 | String |
被踢下线通知
octopusRTCWX.onKickOut(err)
| 参数 | 含义 | 类型 |
|---|
| err.code | 错误码 | Number |
| err.msg | 错误信息 | String |
流更新通知
octopusRTCWX.onStreamUpdated(type, streamList)
| 参数 | 含义 | 类型 |
|---|
| type | 变更类型 0:添加,1:删除 | Number |
| streamList | 变更流列表 | Array |
流信息对象结构
| 参数 | 含义 | 类型 |
|---|
| streamId | 流 id | String |
| userId | 流对应的用户 id | String |
| roomId | 房间号 | String |
获取推拉流的 Rtmp 地址
octopusRTCWX.onStreamUrlUpdate(streamId, url, type)
| 参数 | 含义 | 类型 |
|---|
| streamId | 流 id | String |
| url | rtmp 地址 | String |
| type | 推拉流 | Number 0: 拉流 1: 推流 |
- 收到此回调后需要更新小程序
livePlayer 和 live-pusher 组件的 src 属性
- 根据
type 类型调用小程序接口启动推流或拉流
- 不更新 src 属性会导致小程序无法推拉流
拉流状态变更通知
octopusRTCWX.onPlayStateUpdate(type, userId, codeNum)
| 参数 | 含义 | 类型 |
|---|
| type | 流状态类型 1: 拉流超时 2 : 需要重新拉流 | Number |
| userId | 流对应的用户 id | String |
| codeNum | 状态码 | String |
状态码
| codeNum | 含义 |
|---|
| -2301 | 网络断连,且经多次重连抢救无效,更多重试请自行重启播放 |
| 500001 | 发送信令超时 |
推流状态变更通知
octopusRTCWX.onPublishStateUpdate(type, userId, codeNum)
| 参数 | 含义 | 类型 |
|---|
| type | 流状态类型 0 :连接成功 1: 推流超时 2 :需要重新推流 | Number |
| userId | 流对应的用户 id | String |
| codeNum | 状态码 | Number |
状态码
| codeNum | 含义 |
|---|
| 1002 | 已经与服务器握手完毕,开始推流 |
| 500001 | 发送信令超时 |
| -1307 | 网络断连,且经多次重连抢救无效,更多重试请自行重启推流 |
工具方法
获取 roomId userId userName
octopusRTCWX.roomId()
octopusRTCWX.userId()
octopusRTCWX.userName()
错误码列表
| 错误码 | 描述 |
|---|
| 500002 | 用户被踢掉 |
| 500000 | ws 连接已经关闭 |