anyRTC - 模仿微信音视频通话功能

2020-09-09  本文已影响0人  anyRTC

市面上运用呼叫邀请音视频通话的场景很多,下面简单介绍一下:

1、陌生人交友,需要呼叫邀请通话,进行音视频通信。

2、门铃系统,需要呼叫邀请房主,让房主应答。

3、在线医疗,在线咨询,帮助患者快速、高效的解答救助事宜。

4、智能调度,安保系统智能调度人员。

呼叫邀请是怎么做的?

呼叫邀请的场景既然这么多,那市面上的这种场景是怎么做的呢?下面我们就来分析一下吧。

1、利用市面上现有的IM SDK ,一般这种SDK都会有一套现有的逻辑帮助开发者去实现呼叫邀请的逻辑。但不好的一点是这种SDK非常笨重,包体积大,好多还自带UI,灵活性差。

2、使用Socket 自行组织呼叫邀请逻辑,但是这种开发难度度大,工期时间长,而且对应大并发、高可用显得力不从心。

3、利用anyRTC 实时消息SDK,该SDK对呼叫邀请特别友好,包体积小,而且很轻便,调用几个API接口就把呼叫邀请的逻辑给搞定了。

RTM 实时消息组织呼叫邀请的逻辑分析

呼叫邀请的行为

1、主叫发送呼叫邀请;

2、主叫取消呼叫邀请;

3、被叫接受收到的呼叫邀请;

4、被叫拒绝收到的呼叫邀请;

API 时序图

取消已发送呼叫邀请

接受/拒绝呼叫邀请

呼叫当中异常处理流程

呼叫邀请发出后,调用subscribePeersOnlineStatus方法进行订阅对方的在线状态,根据peersOnlineStatusChanged回调信息来判断对方是否在线。被呼叫者做相同的操作,收到呼叫邀请,调用subscribePeersOnlineStatus方法进行订阅对方的在线状态,根据peersOnlineStatusChanged回调信息来判断对方在线情况与否。直到呼叫挂断后,都取消订阅对方的状态。

呼叫当中的推送对接

anyRTC RTM SDK中没有嵌入推送服务,需要客户自己去做推送服务,下面介绍一下客户端如何集成推送功能。

呼叫之前,订阅对方的状态,如果对方不在线,使用第三方推送服务,进行呼叫,然后发送sendLocalInvitation邀请,本地进入等待画面。

case1: 对方没有答应发出邀请后,如果对方不应答,会在30s给予回到localInvitationFailure邀请失败回调,收到该回调后提示对方无应答。case2: 对方有收到邀请发出邀请后,被呼叫方收到推送消息,进行本地响铃,点击进入程序,登录RTM SDK,此时会收到remoteInvitationReceived的回掉,弹出应答页面,进行相应的应答,呼叫方此刻也会收到localInvitationReceivedByPeer的回调,进行60s倒计时,如果60s后还未做出答复回应,取消呼叫请求,关闭页面。

客户端集成推送服务

极光、信鸽、个推、友盟,用户可以根据自己的情况调研集成。

RTC音视频通话

当呼叫连接建立后,双方协商好进入相同的频道号即可通信。

RTC特色功能介绍

● 自采集:自采集功能的加入,支持屏幕共享、美颜、美声等前处理功能。

● 自渲染:对安全比较高的,可采用自渲染功能,对音视频数据进行自定义加密。

● 大小流:当会话人数比较多的时候,开启大小流,当小屏显示用户视频的时候,使用小流节省本地带宽,当大屏显示用户适配的时候,拉去大流进行高清显示,大小流可无缝切换。

● 插入媒体流:当会话当中,使用插入媒体流可进行同时看电视节目(RTMP流),可以看监控进行协同处理事务(RTSP流)。

● 播放音乐音效:当通话过程中,可以播放本地或在线音乐。

● 上下行网络质量:通话质量实时回调,显示本地以及对方的通话质量,可以进行友好提醒。

● 说话音量提醒:音量大小实时回调,可知晓频道中正在说话的用户,适合大频道多人音视频场景。

● 50人上麦:一个频道最大支持50人同时上麦,观看人数不限制,该功能已经瑶瑶领先其他厂商的SDK。

代码示列

ARCall,前往下载

● 呼叫邀请流程

● 支持iOS,Android,Web端

● 支持多人呼叫邀请通话

● 音频通话、视频通话

上一篇 下一篇

猜你喜欢

热点阅读