一、效果展示
二、功能实现的思路
使用之前必须先获取token、init、connect,同时需要到融云后台开通音视频通话功能(开通或者关闭30分钟后生效)。
单人通话逻辑比较简单,主要会用到didReceiveCall、didConnect、didDisconnect等三个事件。
主要通话流程:
(1)发起通话
(2)监听来电
(3)接听或者挂断
多人通话逻辑复杂一点,并且只能应用在群组或者讨论组,会用到didReceiveCall、didConnect、remoteUserDidJoin、remoteUserDidLeft、remoteUserDidInvite、didDisconnect等六个事件。
主要通话流程:
(1)在组里选择几个成员发起通话
(2)成员收到来电
(3)成员接听或者挂断
(4)邀请几个成员加入当前通话
(5)被邀请组员收到来电
(6)被邀请组员接听或挂断来电
(7)通话组员监听是否有新成员加入或成员退出
为了让页面代码逻辑更简单,设计了四个页面
index.html(融云初始化、所有监听等主要业务代码)
receive-call.html(接收端业务代码,单人多人通话代码)
send-call.html(发送端业务代码,单人多人通话代码)
friends.html(群组或讨论组成员列表)
index.html首页融云初始化以及监听代码如下:
var rong = api.require('rongCloud2');
rong.init(function (ret, err) {
if (ret.status == 'success') {
rong.connect({
token: $api.getStorage('token')
}, function (ret, err) {
});
}
});
//来电事件
rong.addCallReceiveListener({
target: 'didReceiveCall'
}, function (ret) {
if (ret.callSession.status) {
var callType = 'more';
if (ret.callSession.conversationType == 'PRIVATE') {
callType = '