从0到1搭建视频通话系统,我1天就搞定了

关注公众号“腾讯云视频”,一键获取 技术干货 | 优惠活动 | 视频方案

最近被老大分配了一个任务,他打开微信视频聊天,发起多人视频,指着功能界面说,“你看我们的产品也是有多人会议的场景,我们也加一个这样的功能,也不用很复杂,就仿照微信或者QQ的多人视频做一个出来,能实时视频通话,这个应该也不难吧,给你一个礼拜搞定,可以吗?” 

我的内心在想,

这TM要涉及视频采集、编码、传输、解码、视频渲染,要有稳定的后台音视频传输,就光搭建后台就要老命了,这尼玛怎么搞,临走老大又补了一句,"哦,我们这里再加一个亮点,可以在视频界面发送文本消息,拓展下聊天功能",这时我的内心已经崩溃。

要一个礼拜搞定,只能看看有没有现成的解决方案,抱着试一试的态度google了下,没想到还真有,腾讯云、即构、网易云、声网等好几家公司提供了完整了解决方案,本着腾讯毕竟大厂,而且里面介绍他们的解决方案是基于QQ十多年的技术积累,稳定性和质量都有保障,于是直接试用了腾讯云的解决方案,从接入过程和最后的效果看确实也没有辜负我的期望,在还没有真正购买他们产品时,接入过程中遇到的问题都能得到积极的技术支持,而且让我意想不到的是该方案还支持im功能,解决了老大最后的神补刀功能。

本文根据自己接入过程,展开介绍下具体步骤,归纳起来主要有四步:

01

注册账号

进入腾讯云官网

注册自己的腾讯云账号,这个简单没什么说的,腾讯云也提供了QQ或者微信账号直接登录,省去注册的麻烦。

02

申请APPID

在接入腾讯云实时音视频前,我们需要给自己的应用注册一个唯一标识appid,方法如下:

登录腾讯云,点击进入控制台,

选择云产品->实时音视频->创建新应用

填入信息,点击确定即可生成自己的AppID,会在后面接入sdk时使用。

点击创建的应用就可以在控制台中对自己的应用进行管理

03

购买1元套餐

在使用申请的appid接入实时音视频服务后,产生通话时长,腾讯云就会根据时长来计费,就像我们打电话计费一样,这里腾讯云提供了一些套餐,我们可以先使用最便宜的1元套餐,一个月1万分钟,一般也满足使用,如果觉得效果好,使用时长更多时我们可以再升级套餐包

购买入口,搜索腾讯云 实时音视频,就能找到

04

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.初始化登录

在程序启动的地方调用接口:

sdkAPPID就是刚才申请的APPID,acountType在应用账号信息里

完成初始化后,使用userid和usersig进行登录

4.进入房间,视频渲染

布局渲染用的控件:

并设置到SDK:

进入房间有两种方式,房间不存在,调用创建房间接口

如果房间已经存在,则调用加入房间接口:

roomID即是房间的号码,由自己的业务提供维护。

在进入房间后,对于本应用程序就是进入了会议室,会自动将进入会议室的每个人员画面渲染出来。

5.消息处理

在老大最后补的一句里,需要在视频通话中加入文本消息聊天功能,老大说的倒很简单,但是一个消息聊天单单消息通道的建立就是一件非常困难的事情,但在接入过程中惊喜的发现腾讯实时音视频本身就提供了这个功能,真实得来全不费工夫,而且开启聊天功能非常简单,只需在进房时将ILiveRoomOption的imSupport开启,然后设置消息监听即可收到消息,消息发送也是s调用一个借口即可,代码如下:

效果展示

浪里个浪,原本以为任务是肯定完成不了,没想到不到一天的功夫就已经搭建出视频通话功能。上述就是本文根据腾讯云官方文档指引,以Android为例总结的从零搭建视频通话服务的主要步骤,如有遇到其他问题,欢迎留言。

画风稍微转变一下,咳咳,小编码到了这里,忍不住和大家说一声:

公众号不适合看技术干货尤其有代码的文章!

公众号不适合看技术干货尤其有代码的文章!

公众号不适合看技术干货尤其有代码的文章!

欢迎研发GG留言,索要本文技术干货MD文件

点击“阅读原文”

获取更多实时音视频技术干货

原文发布于微信公众号 - 腾讯云视频(txvideocloud)

原文发表时间:2018-07-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏京东技术

塞伯坦 | 提高业务研发效率的工程化解决方案

http://cyb.hestudy.com/,面向前端模块化工程的构建工具。主要目的是帮助开发者统一前端开发模式和项目开发结构,提高功能扩展和降低维护成本,自...

1432
来自专栏互联网数据官iCDO

高级谷歌分析的技巧与窍门

译者:Nic 本文长度为1831字,预估阅读时间3分钟。 我们今天要向大家分享高级谷歌分析的技巧与窍门。 Google Analytics(分析)影响到搜索引擎...

2896
来自专栏Linux Python 加油站

揭秘Linux工程师一路走来都需要哪些技能

大公司也是从小公司一步步走过来的,而大公司之所以与小公司不同,不在于基础的技术体系不同,而是当数据量达到一定程度后,引发的质变而已。而在思考质变带来的性能问题中...

1254
来自专栏BestSDK

好的产品诞生全过程:每个环节都细致入微

当我们提到一些常见的功能时,可以一笔带过,简单的描述一下就可以了,比如:对于微信登录,手机号注册。 那如果我们提到的是一些比较复杂的,具备一定创造性功能的时候,...

2965
来自专栏PPV课数据科学社区

【学习】深度解析LinkedIn大数据平台(二):数据集成

第二部分:数据集成 请让我首先解释 一下“数据集成”是什么意思,还有为什么我觉得它很重要,之后我们再来看看它和日志有什么关系。 数据集成就是将数据组织起来,使...

3597
来自专栏小石不识月

微服务 —— 你需要付出什么?又能有何收获?

如果您阅读过我的文章 —— 微服务中的语义扩散,您可能会识得此标题。本文是那篇文章的一个延续,其目的是强调,只有当我们付出足够的努力来处理我们将要面对的组织和分...

2624
来自专栏pangguoming

免费桌面视频录像工具OBS的简单操作介绍

1052
来自专栏知晓程序

微信为什么要推出「小程序插件」?

1273
来自专栏小程序·云开发专栏

腾讯相册上了小程序·云开发,不仅不慌而且很爽

小程序·云开发是基于腾讯云研发的全新 云开发 Tencent Cloud Base(简称 TCB) 服务,本文将阐述该解决方案如何帮助公司级业务腾讯相册加快迭代...

9804
来自专栏数据和云

微博MySQL优化之路 - 肖鹏

肖鹏老师对于开源数据库尤其是MySQL的研究特别深入,今天我们来一起听他分享自己对MySQL数据库的优化经验! 作者简介 ? 肖鹏 微博研发中心数据库技术负责人...

4057

扫码关注云+社区

领取腾讯云代金券