不过,我们在日常生活中常用的这些功能,有人知道它们背后的工作原理吗?实时语音通话开发实如何快速实现的?需要什么技术?下面我们来了解一下zego即构科技的实时语音SDK是如何快速实现开发的。
集成
1 准备环境

在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求:
l Android Studio 2.1 或以上版本。
l Android SDK 25、Android SDK Build-Tools 25.0.2、Android SDK Platform-Tools 25.x.x 或以上版本。
l Android 4.1 或以上版本,且支持音频的 Android 设备或模拟器(推荐使用真机)。
l Android 设备已经连接到 Internet。
2 集成 SDK
2.1 (可选)新建项目
2.2 导入 SDK
目前支持的平台架构包括:armeabi-v7a、arm64-v8a、x86、x86_64。
开发者可通过以下任意一种方式实现集成 SDK(详情请看官网)。
方式一:使用 JitPack 自动集成 SDK
l 进入项目根目录,打开“build.gradle”文件,在“allprojects”中加入如下代码
l “app” 目录,打开“build.gradle”文件,在“dependencies” 中添加 implementation 'com.github.zegolibrary:express-audio:x.y.z'。“x.y.z”为 SDK 的版本号,请参考下载SDK包中的发布历史获取。
(方式二省略)
实现流程
1 前提条件
在实现基本的实时语音功能之前,请确保:
l 已在项目中集成 ZEGO Express SDK,详情请参考 快速开始 - 集成。
l 已在 ZEGO 控制台 创建项目,并申请有效的AppID和AppSign,详情请参考 控制台 - 项目管理。
2 使用步骤
本节介绍如何使用 ZEGO Express SDK 实现基本的实时语音功能,API 调用时序如下图:
2.1 创建引擎
1. (可选)创建界面
2. 创建引擎
定义 SDK 引擎对象,调用createEngine 接口,将申请到的AppID和AppSign传入参数 “appID”和“appSign”,创建引擎单例对象。
2.2 登录房间
1. 登录
传入用户ID参数“userID”创建 ZegoUser 用户对象后,调用 loginRoom 接口,传入房间 ID参数“roomID”和用户参数“user”,登录房间。
2. 监听登录房间后的事件回调
根据实际应用需要,在登录房间后监听想要关注的事件通知,比如房间状态更新、用户状态更新、流状态更新等。(详情请看官网)
2.3 推流
1. 开始推流
调用 startPublishingStream 接口,传入流 ID 参数 “streamID”,向远端用户发送本端的音频流。
2. 监听推流后的事件回调
根据实际应用需要,在推流后监听想要关注的事件通知,比如推流状态更新等。
2.4 拉流
1. 开始拉流
调用 startPlayingStream 接口,根据传入的流 ID 参数 “streamID”,拉取远端推送的音频流。
远端用户推送的“streamID”可以从IZegoEventHandler 代理中的 onRoomStreamUpdate 回调中获得。
2. 监听拉流后的事件回调
根据实际应用需要,在拉流后监听想要关注的事件通知,比如拉流状态更新等。
2.5 停止推拉流
1. 停止推流
调用 stopPublishingStream 接口停止向远端用户发送本端的音频流。
2. 停止拉流
调用stopPlayingStream 接口停止拉取远端推送的音频流。
2.6 退出房间
调用 logoutRoom 接口退出房间。
2.7 销毁引擎
调用 destroyEngine 接口销毁引擎,用于释放 SDK 使用的资源。
关于即构科技
Zego即构科技是一家业内领先的实时音视频云服务商,公司于2015年6月在深圳成立,最初的核心研发团队曾参与打造世界顶级的实时通信产品和服务,在音视频技术上,他们有超过20年的积累。发展到如今,他们赢得了映客、花椒直播、一直播、喜马拉雅FM、陌陌游戏、自由之战2、和好未来等顶级厂商托付和信赖,是行业内数一数二的实时音视频云服务商。