多平台统一管理软件接口,如何实现多平台统一管理软件接口
211
2022-10-13
技术分享| 如何快速实现音视频在线通话
前提
在接入anyRTC SDK前,先向大家介绍下音视频呼叫所需要的SDK:视频通话SDK、实时消息SDK、第三方推送服务。
视频通话SDK
视频通话SDK,可实现一对一单聊、多人群聊,同时具备纯语音通话和视频通话功能。也可以实现一对一、多对多的音视频互动直播。其原理是进入同一个频道即可发布自己的音视频流并自动订阅其他用户的音视频流,进而实现音视频通话。
实时消息SDK
实时消息SDK,可以轻松实现点对点消息、频道消息、用户属性、频道属性和发起呼叫邀请、获取离线以及历史信息等功能。更可以自由拓展出更多丰富的功能,如禁言、踢人、权限管理等。其原理是在线用户的信令的发送与接收,通过信令交换来客户所需要的功能。
第三方推送服务
第三方推送服务,当集成了实时消息 SDK 的用户下线后,消息需要通过第三方推送服务才能送达,一般应用中都会集成推送服务,当实时消息用户下线后,通过推送服务也可以进行消息传递,实现音视频呼叫。
实现音视频呼叫功能,前提已经集成了视频通话SDK、实时消息SDK、第三方推送服务。
一对一呼叫
一对一呼叫邀请使用RTM 的呼叫邀请接口进行:具体逻辑查看呼叫邀请文档,本章节结合呼叫邀请文档进行阐述。
流程:
用户登录RTM-》选择需要呼叫的用户-》使用RTM方法判断用户是否在线-》用户不在线-》发送离线推送消息-》等待对方同意与否-》对方同意后-》使用RTC 进入协商的频道进行通话。 用户登录RTM-》选择需要呼叫的用户-》使用RTM方法判断用户是否在线-》用户在线-》发送RTM呼叫邀请消息-》等待对方同意与否-》对方同意后-》使用 RTC 进入协商的频道进行通话。
问题:
1、如何知道目前对方不在线?
在进行呼叫之前调用:queryPeersOnlineStatus方法进行查询用户是否在线,用户在线走RTM 呼叫邀请方法,用户不在线使用推送服务进行消息传达。
2、推送消息如何做?呼叫端和被叫端怎么处理?
3、呼叫时异常了该怎么处理?
一般的异常是信令都已送达,程序可能崩溃会导致流程进行不下去,一般有2中方式进行异常处理:
anyRTC RTM SDK的订阅对方在线状态功能能够帮助开发者解决中间异常问题,如果收到对方下线,页面上做友情提示即可。 呼叫中每个状态都有超时回调,根据超时回调进行友情提醒或中断呼叫邀请。
4、响铃怎么处理?
推送铃声为推送消息的时候可自定义响铃的内容 发送呼叫等待铃声以及接收邀请后的响铃,Native端可根据SDK 的混音接口实现。
不建议使用系统自带的播放器去播放响铃,因为SDK的通话和音乐播放会对音频Session造成影响。
5、推送服务商有什么好的建议?
目前市面上的推送服务比如:个推、极光、友盟都是可以去集成的,Android端的最好配置下主流的平台(华为、小米、OPPO、vivo、魅族等推送厂商通道)利用厂商的通道去推送,保达率会高很多。测试期间用免费的推送通道即可,上线后建议去购买他们的商业版本服务。
一对多呼叫
一对一的呼叫流程是使用RTM 呼叫管理接口进行完成,如果进行一对多呼叫,需要使用 RTM 点对点消息,自定义信令进行消息投递,中间环节跟 RTM 呼叫管理接口使用无异。
注意事项
呼叫多人的时候,需要对每个人进行点对点发送消息,发送消息前,同样的要用RTM 检测对方是否在线,对方不在线发送推送消息,对方在线发送点对点消息。 呼叫后,如果对方在线需要订阅对方的在线状态。 发送消息后,同样也做60s倒计时等待。
问题
1、通话中的邀请功能怎么实现?
多人呼叫场景中,还会有通话过程中邀请其他人加入,该操作流程跟前面的一对多呼叫流程保持一致即可。
2、通话中的会控功能如何实现?
可以使用RTM 点对点消息,发送自定义消息,只需要协商好信令内容,识别对应的指令即可。
总结
上述呼叫流程 anyRTC 已开源到Github,开发者可参考该流程快速实现音视频在线通话。该开源项目包含的平台有iOS,Android,Web和uni-app,功能暂未包含推送功能,推送功能可参考本文描述自行添加。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~