内容简介:本文由腾讯云视频发表于云+社区专栏本文作者,ericxwli,高级工程师,来自腾讯云终端团队背景
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
本文由腾讯云视频发表于云+社区专栏
本文作者,ericxwli,高级工程师,来自腾讯云终端团队
背景
最近被老大分配了一个任务,他打开微信视频聊天,发起多人视频,指着功能界面说,“你看我们的产品也是有多人会议的场景,我们也加一个这样的功能,也不用很复杂,就仿照微信或者QQ的多人视频做一个出来,能实时视频通话,这个应该也不难吧,给你一个礼拜搞定,可以吗?” 我的内心在想这TM要涉及视频采集、编码、传输、解码、视频渲染,要有稳定的后台音视频传输,就光搭建后台就要老命了,这尼玛怎么搞,临走老大又补了一句,"哦,我们这里再加一个亮点,可以在视频界面发送文本消息,拓展下聊天功能",这时我的内心已经崩溃。
要一个礼拜搞定,只能看看有没有现成的解决方案,抱着试一试的态度google了下,没想到还真有,腾讯云、即构、网易云、声网等好几家公司提供了完整了解决方案,本着腾讯毕竟大厂,而且里面介绍他们的解决方案是基于QQ十多年的技术积累,稳定性和质量都有保障,于是直接试用了腾讯云的解决方案,从接入过程和最后的效果看确实也没有辜负我的期望,在还没有真正购买他们产品时,接入过程中遇到的问题都能得到积极的技术支持,而且让我意想不到的是该方案还支持im功能,解决了老大最后的神补刀功能。
本文根据自己接入过程,展开介绍下具体步骤,归纳起来主要有四步:
一、注册账号
注册自己的腾讯云账号,这个简单没什么说的,腾讯云也提供了QQ或者微信账号直接登录,省去注册的麻烦。
二、申请APPID
在接入腾讯云实时音视频前,我们需要给自己的应用注册一个唯一标识appid,方法如下:
登录腾讯云,点击进入控制台,
选择云产品->实时音视频->创建新应用
填入信息,点击确定即可生成自己的AppID,会在后面接入sdk时使用。
点击创建的应用就可以在控制台中对自己的应用进行管理
三、购买1元套餐
在使用申请的appid接入实时音视频服务后,产生通话时长,腾讯云就会根据时长来计费,就像我们打电话计费一样,这里腾讯云提供了一些套餐,我们可以先使用最便宜的1元套餐,一个月1万分钟,一般也满足使用,如果觉得效果好,使用时长更多时我们可以再升级套餐包,购买入口
四、SDK接入
完成上述准备工作后,就是最关键的SDK接入,腾讯云的SDK接入有专门的文档介绍,接入非常方便,主要有下面关键几个步骤:
1.集成SDK
腾讯实时音视频解决方案将底层音视频能力封装成了一套SDK集合,包含了
| SDK | 说明 |
|---|---|
| IMSDK | 提供 IM 即时通信功能 |
| AVSDK | 提供底层音视频功能 |
| ILiveSDK | 在 AVSDK 基础上封装而成,提供更简单易用的音视频功能接口 |
| BeautySDK | 提供美颜预处理功能 |
我们只需要将上次SDK下载然后导入到自己工程即可,详细过程可阅读官方接入文档
2.生成usersig
每个用户都会有一个用户标识,usersig则是对用户标识的一种鉴权认证,是一个加密串,在登录时会用到,生成步骤如下:
第一步,到腾讯云的控制台下载私钥,也就是这个
**第二步,复制私钥
下载下来是一个keys.zip,不用解压缩,直接用winrar打开,右键private_key选【查看文件】,然后Ctrl+A,Ctrl+C复制**
**第三步,生成userSig
还是在腾讯云的控制台,在左边找到【开发辅助】,输入用户名,在私钥这里Ctrl+V,点击【生成签名】,然后就可以在右边把生成的userSig复制下来**
3.初始化登录
在程序启动的地方调用接口:
// 初始化iLiveSDK
ILiveSDK.getInstance().initSdk(this, Constants.SDKAPPID, Constants.ACCOUNTTYPE);
// 初始化iLiveSDK房间管理模块
ILiveRoomManager.getInstance().init(new ILiveRoomConfig()
.setRoomMsgListener(this));
复制代码
sdkAPPID就是刚才申请的APPID,acountType在应用账号信息里
完成初始化后,使用userid和usersig进行登录
ILiveLoginManager.getInstance().iLiveLogin(userId, userSig, callback); 复制代码
4.进入房间,视频渲染
布局渲染用的控件:
```Java 复制代码
<com.tencent.ilivesdk.view.AVRootView
android:id="@+id/av_root_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
复制代码
并设置到SDK:
ILiveRoomManager.getInstance().initAvRootView(avRootView); 复制代码
进入房间有两种方式,房间不存在,调用创建房间接口
ILiveRoomManager.getInstance().createRoom(roomId, new ILiveRoomOption(), callback); 复制代码
如果房间已经存在,则调用加入房间接口:
ILiveRoomManager.getInstance().createRoom(roomId, new ILiveRoomOption(), callback); 复制代码
roomID即是房间的号码,由自己的业务提供维护。
在进入房间后,对于本应用程序就是进入了会议室,会自动将进入会议室的每个人员画面渲染出来。
5.消息处理
在老大最后补的一句里,需要在视频通话中加入文本消息聊天功能,老大说的倒很简单,但是一个消息聊天单单消息通道的建立就是一件非常困难的事情,但在接入过程中惊喜的发现腾讯实时音视频本身就提供了这个功能,真实得来全不费工夫,而且开启聊天功能非常简单,只需在进房时将ILiveRoomOption的imSupport开启,然后设置消息监听即可收到消息,消息发送也是s调用一个借口即可,代码如下:
//消息发送 ILiveMessage message = new ILiveTextMessage(test); ILiveRoomManager.getInstance().sendGroupMessage(message, callback); 复制代码
##效果展示
浪里个浪,原本以为任务是肯定完成不了,没想到不到一天的功夫就已经搭建出视频通话功能。上述就是本文根据腾讯云官方文档指引,以Android为例总结的从零搭建视频通话服务的主要步骤,如有遇到其他问题,欢迎留言。
此文已由作者授权腾讯云+社区发布,更多原文请点击
搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!
海量技术实践经验,尽在云加社区!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 用机器学习改善网络通话质量
- 如何在 React Native 中实现视频通话
- 如何使用 Qt 开发音视频通话应用
- 5G设备要学的普通话:SDN
- 智能语音机器人中的语音通话实践
- Agora 教程 | 如何使用 Qt 开发视频通话应用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Art of Computer Programming, Volumes 1-3 Boxed Set
Donald E. Knuth / Addison-Wesley Professional / 1998-10-15 / USD 199.99
This multivolume work is widely recognized as the definitive description of classical computer science. The first three volumes have for decades been an invaluable resource in programming theory and p......一起来看看 《The Art of Computer Programming, Volumes 1-3 Boxed Set》 这本书的介绍吧!