集成方式
SDK集成方式
在使用之前请先阅读如下前置条件:
- 请确保你的微信小程序基础库支持
live-pusher
及live-player
组件,并在小程序管理后台的设置-接口设置
开启了组件使用权限,详细查看微信文档 - 请在小程序管理后台,添加如下域名到白名单中:
# http接口 https://nrtc.netease.im https://webrtcgwcn.netease.im https://webrtcgwhz.netease.im https://lbs.netease.im https://wlnimsc0.netease.im https://wlnimsc1.netease.im https://statistic.live.126.net # websocket接口 wss://webrtcgwcn.netease.im wss://webrtcgwhz.netease.im wss://wlnimsc0.netease.im wss://wlnimsc1.netease.im
下载、引入SDK
音视频的接入需要依赖 IM 的账号系统,所以音视频的初始化需要依赖 IM 实例,这里需要首先初始化 IM,再初始化音视频
初始化 IM, 完成 IM 的登录连接操作 请参照 IM 初始化章节
- 官网 SDK 下载入口。
- IM功能引入,请引入
NIM_Web_NIM_weixin_v.js
,通过NIM
来获取引用 请确保引入带有weixin名称的微信版本IM SDK - 引入RTC音视频SDK
- 请引入
NIM_Web_Netcall_weixin_v.js
, 通过NetcallWeixin
来获取引用 - 调用
NIM.use(NetcallWeixin)
来加载实时音视频插件
- 请引入
请注意:IM连接成功后
方可进行音视频通话,否则音视频通话会失败
WebSocket超时时间
如果要使用断线重连机制,建议配置WebSocket的超时时间为10秒或更短。小程序连接WebSocket的超时时间为60秒,建议可以配置短一些。
小程序切换至后台后,再切换回前台,如果超时时间过长,将会导致在超时事件触发前,不会进行重连,而要等到超时时间结束后,才会报错进行第二次重连。
{
...
"networkTimeout": {
"connectSocket": 10000
},
...
}
总体接口介绍
引入SDK脚本并且实例化之后,得到一个SDK工具集合: netcall
(自定义变量名),下面我们大致介绍一下最常用的一些接口作用,具体的参数配置请参照后面具体的API介绍
- 通话控制相关
接口名 | 说明 |
---|---|
netcall.call | 主叫发起通话 |
netcall.response | 被叫响应通话 |
netcall.hangup | 挂断通话 |
netcall.startRtc | 开启音视频通话 |
netcall.control | 通话过程中发送控制指令: 例如开关摄像头、麦克风,音视频互相切换等等详情 |
netcall.createChannel | 多人通话:创建房间 |
netcall.joinChannel | 多人通话:加入房间 |
netcall.switchMode | 切换通话模式 |
- 事件通知注册与回调相关
接口名 | 说明 |
---|---|
netcall.on('syncDone', obj => {}) | 同步完成通知 |
netcall.on('beCalling', obj => {}) | 收到呼叫通知 |
netcall.on('callAccepted', obj => {}) | 主叫收到被叫应答通知: 接受 |
netcall.on('callRejected', obj => {}) | 主叫收到被叫应答通知: 拒绝 |
netcall.on('control', obj => {}) | 通话中收到远端的控制指令 |
netcall.on('hangup', obj => {}) | 收到挂断通知 |
netcall.on('callerAckSync', obj => {}) | 其他端已处理的通知 |
netcall.on('clientJoin', obj => {}) | 媒体层有人加入通知 |
netcall.on('clientLeave', obj => {}) | 媒体层有人离开通知 |
netcall.on('joinChannel', obj => {}) | 信令层用户加入房间通知 |
netcall.on('kicked', obj => {}) | 被踢通知 |
netcall.on('close', obj => {}) | 连接关闭通知 |
netcall.on('error', obj => {}) | 错误通知 |
本篇文档内容是否对您有帮助?
有帮助
我要吐槽
此文档对你是否有帮助
×
有帮助
我要吐槽
×