实现类似微信视频聊天的功能
Posted 刘建伯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现类似微信视频聊天的功能相关的知识,希望对你有一定的参考价值。
实现类似微信视频聊天的功能
前言
今年因为疫情的影响,很多线下的项目或者活动都放在了线上,所以集成音视频等相关的话题一直比较火热。
作为一个小码农对微信音视频通话的功能还是比较好奇的,所以空闲的时候就想着自己能不能也实现一个,给朋友一个链接地址然后就可以愉快的视频通话了(小小的满足一下虚荣心)
对于集成音视频纯小白来说,前期准备工作的确不好整,因为对这块没什么概念,对后面需要做什么列不出一个清晰的步骤出来(蓝廋香菇~~~),幸运的是,在网上找相关知识时意外发现了一家做音视频 SDK 的(融云https://www.rongcloud.cn/)
为什么推荐他们家呢,主要是他们的开发文档比较适用于像我这样的小白,跟着他们的快速文档无脑实现音视频通话。点这个地址,开启你的音视频之旅吧:https://docs.rongcloud.cn/v4/views/rtc/call/noui/quick/web.html
特别意外的是融云还提供了 Web 端在线集成体验示例,体验完后还能拿到 demo ,附上跳转连接:https://docs.rongcloud.cn/v4/views/rtc/call/noui/demo/web.html
音视频通话介绍
音视频通话 SDK 含呼叫流程,可以实现一对一呼叫、多人呼叫等音视频通话场景,音视频通话 SDK 区别于音视频会议 SDK,音视频通话(呼叫)SDK 不需要双方约定房间号,呼叫流程自动处理房间号,适用于类似微信音视频通话等必须含有呼叫流程的应用场景,由两部分组成 信令通知 和 音视频传输
信令通知:基于 IMLib SDK,例如 A 给 B 发起通话,A 优先会通过 IM 给 B 发送一个通话请求,B 同意后再进入音视频房间进行音视频通信
音视频传输:基于 RongRTCLib SDK,例如 A 给 B 发起通话,信令传输完成后,会适用融云提供的音视频能力进行通信
但是在集成的时候,有几点是需要吐槽的:
1、我给其他人发起通话的时候,直接就触发挂断了返回 "SummaryMessage" 类型消息,咋又看不懂在文档找了半天都没发现 SummaryMessage 的详细描述,只知道是挂断电话返回的消息,最后提交了工单才了解挂断的原因。
Web 端挂断原因
HungupMessage 消息中 reason 字段及 SummaryMessage 消息中 status 字段都为挂断原因
状态码 | 说明 | 状态码 | 说明 |
---|---|---|---|
1 | 己方取消已发出的通话请求 | 11 | 对方取消已发出的通话请求 |
2 | 己方拒绝收到的通话请求 | 12 | 对方拒绝收到的通话请求 |
3 | 己方挂断 | 13 | 对方挂断 |
4 | 己方忙碌 | 14 | 对方忙碌 |
5 | 己方未接听 | 15 | 对方未接听 |
6 | 己方不支持当前引擎 | 16 | 对方不支持当前引擎 |
7 | 己方网络错误 | 17 | 对方网络错误 |
8 | 其他设备已处理 | 18 | CallLib 不可用 |
原来是对方忙碌导致的接听失败!!!
2、前段时间还能正常通话,升级完 chrome 后就报错了(一脸懵逼
以上是关于实现类似微信视频聊天的功能的主要内容,如果未能解决你的问题,请参考以下文章
Android开发聊天工具,实现了类似QQ微信的即时通讯功能