本文档主要介绍如何快速集成实时音视频(TRTC)SDK,运行 TRTC 场景化解决方案,实现实时视频/语音通话。
目录结构
TUICalling
├─ App // 主面板,音视频通话场景入口
├─ Debug // 调试相关
└─ Source // 实时语音/视频通话业务逻辑
环境准备
- 最低兼容 Android 4.1(SDK API Level 16),建议使用 Android 5.0 (SDK API Level 21)及以上版本
- Android Studio 3.5及以上版本
- App 要求 Android 4.1及以上设备
运行示例
前提条件
申请 SDKAPPID 和 SECRETKEY
- 登录实时音视频控制台,选择【开发辅助】>【快速跑通Demo】。
- 单击【立即开始】,输入您的应用名称,例如
TestTRTC,单击【创建应用】。
- 创建应用完成后,单击【我已下载,下一步】,可以查看 SDKAppID 和密钥信息。
配置工程文件
- 使用 Android Studio(3.5及以上的版本)打开源码工程
TUICalling。 - 找到并打开
TUICalling/Debug/src/main/java/com/tencent/liteav/debug/GenerateTestUserSig.java文件。 - 设置
GenerateTestUserSig.java文件中的相关参数:
- SDKAPPID:默认为占位符(PLACEHOLDER),请设置为实际的 SDKAppID。
- SECRETKEY:默认为占位符(PLACEHOLDER),请设置为实际的密钥信息。
- 返回实时音视频控制台,单击【粘贴完成,下一步】。
- 单击【关闭指引,进入控制台管理应用】。
!本文提到的生成 UserSig 的方案是在客户端代码中配置 SECRETKEY,该方法中 SECRETKEY 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量,因此该方法仅适合本地跑通工程和功能调试。 正确的 UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向 App 的接口,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig。更多详情请参见 服务端生成 UserSig。
集成 SDK
您可以选择使用mavenCentral自动加载的方式,或者手动下载 aar 再将其导入到您当前的工程项目中,工程默认采用方法一配置。
方法一:自动加载(aar)
实时音视频(TRTC) SDK 已经发布到mavenCentral库,您可以通过配置 gradle 自动下载更新。
只需要用 Android Studio 打开需要集成 SDK 的工程,然后通过简单的三个步骤修改 App/build.gradle 文件,就可以完成 SDK 集成:
- 在 dependencies 中添加 SDK 的依赖。
- 若使用3.x版本的 com.android.tools.build:gradle 工具,请执行以下命令:
dependencies {
implementation 'com.tencent.liteav:LiteAVSDK_TRTC:latest.release'
}
- 若使用2.x版本的 com.android.tools.build:gradle 工具,请执行以下命令:
dependencies {
compile 'com.tencent.liteav:LiteAVSDK_TRTC:latest.release'
}
- 在 defaultConfig 中,指定 App 使用的 CPU 架构。
defaultConfig {
ndk {
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
}
}
- 单击【Sync Now】,自动下载 SDK 并集成到工程里。
方法二:手动下载(aar)
如果您的网络连接mavenCentral有问题,您也可以手动下载 SDK 集成到工程里:
- 下载最新版本 实时音视频 SDK。
- 将下载到的 aar 文件拷贝到工程的 App/libs 目录下。
- 在工程根目录下的 build.gradle 中,添加 flatDir,指定本地仓库路径。
allprojects {
repositories {
flatDir {
dirs 'libs'
dirs project(':App').file('libs')
}
}
}
- 在 App/build.gradle 中,添加引用 aar 包的代码。
dependencies {
compile(name: 'LiteAVSDK_TRTC_xxx', ext: 'aar') // xxx表示解压出来的SDK版本号
}
- 在 App/build.gradle的defaultConfig 中,指定 App 使用的 CPU 架构。
defaultConfig {
ndk {
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
}
}
- 单击【Sync Now】,完成 SDK 的集成工作。
编译运行
用 Android Studio 打开该项目,连上Android设备,编译并运行。
体验应用(体验应用至少需要两台设备)
用户 A
步骤1、输入用户名(请确保用户名唯一性,不能与其他用户重复),如图示:
步骤2、根据不同场景及人数需求,进入不同的场景界面,如图示:
步骤3、输入要拨打的用户名,点击搜索,然后点击呼叫,如图示:(请确保被叫方保持在应用内,否则可能会拨打失败);
用户 B
步骤1、输入用户名(请确保用户名唯一性,不能与其他用户重复),如图示:
步骤2、进入主页,等待接听来电;
常见问题
1. 查看密钥时只能获取公钥和私钥信息,该如何获取密钥?
TRTC SDK 6.6 版本(2019年08月)开始启用新的签名算法 HMAC-SHA256。在此之前已创建的应用,需要先升级签名算法才能获取新的加密密钥。如不升级,您也可以继续使用 老版本算法 ECDSA-SHA256,如已升级,您按需切换为新旧算法。
升级/切换操作:
- 登录 实时音视频控制台。
- 在左侧导航栏选择【应用管理】,单击目标应用所在行的【应用信息】。
- 选择【快速上手】页签,单击【第二步 获取签发UserSig的密钥】区域的【点此升级】、【非对称式加密】或【HMAC-SHA256】。
- 升级:
- 切换回老版本算法 ECDSA-SHA256:
- 切换为新版本算法 HMAC-SHA256:
2. 两台手机同时运行工程,为什么看不到彼此的画面?
请确保两台手机在运行工程时使用的是不同的 UserID,TRTC 不支持同一个 UserID (除非 SDKAppID 不同)在两个终端同时使用。
3. 防火墙有什么限制?
由于 SDK 使用 UDP 协议进行音视频传输,所以在对 UDP 有拦截的办公网络下无法使用。如遇到类似问题,请参考 应对公司防火墙限制 排查并解决。


