本文将介绍如何用最短的时间完成 TUICallKit 组件的接入,跟随本文档,您可以在 10 分钟内完成接入工作,并最终得到一个包含完备 UI 界面的视频通话功能。音视频通话界面如下图所示:
单人通话 | 群组通话 |
| |
环境准备
Flutter 3.0及更高版本。
步骤1:开通服务
步骤2:导入TUICallKit 组件
flutter pub
add
tencent_calls_uikit
步骤3:工程配置
1. 将 TUICallKit 的 navigatorObserver 添加到 App 组件中,以 MateriaApp 为例,代码如下:
import 'package:tencent_calls_uikit/tuicall_kit.dart';MaterialApp(navigatorObservers:[TUICallKit.navigatorObserver],...)
2. 如果您需要编译运行在 Android 平台,由于我们在 SDK 内部使用了Java 的反射特性,需要将 SDK 中的部分类加入不混淆名单。
首先,需要在 app 目录下的 build.gradle 文件中配置并开启混淆规则:
android {...buildTypes {release {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}}
再在 proguard-rules.pro 文件中添加如下代码:
-keep class com.tencent.** { *; }
3. 如果您需要使用 iOS 的音视频功能,您需要授权麦克风和摄像头的使用权限。
授权操作方法:在您的 iOS 工程的 Info.plist 中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。
<key>NSCameraUsageDescription</key><string>CallingApp需要访问您的相机权限,开启后录制的视频才会有画面</string><key>NSMicrophoneUsageDescription</key><string>CallingApp需要访问您的麦克风权限,开启后录制的视频才会有声音</string>
步骤4:登录
在您的项目中添加如下代码,这个步骤异常关键,因为只有在登录成功后才能正常使用 TUICallKit 的各项功能,故请您耐心检查相关参数是否配置正确:
TUIResult result = TUICallKit.instance.login(SDKAppID, // 请替换为第一步得到的SDKAppID'userId', // 请替换为您的User ID'userSig'); // 您可以在控制台计算一个UserSig并填到该位置
在调用完成后,您可以通过
TUIResult
`类型的返回值查看是否登录成功。参数说明:
sdkAppId
:在步骤一中的最后一步中您已经获取到,这里不再赘述。userId
:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。userSig
:使用步骤三中获取的 SecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台中的 辅助工具 生成一个临时可用的 UserSig,也可以参见 Github 中的示例代码 进行调试,更多信息请参见 如何计算及使用 UserSig。注意:
尊敬的开发者,您好,当前步骤是目前开发者反馈问题最多的步骤,常见问题如下:
sdkAppId 设置错误,国内站的 SDKAppID 一般是以140开头的10位整数。
userSig 被错配成了加密密钥(Secretkey),userSig 是用 SecretKey 把 sdkAppId、userId 以及过期时间等信息加密得来的,而不是直接把 Secretkey 配置成 userSig。
userId 被设置成“1”、“123”、“111”等简单字符串,由于 TRTC 不支持同一个 UserID 多端登录,所以在多人协作开发时,形如 “1”、“123”、“111” 这样的 userId 很容易被您的同事占用,导致登录失败,因此我们建议您在调试的时候设置一些辨识度高的 userId。
警告:
Github 中的示例代码使用了 genTestUserSig 函数在本地计算 userSig 是为了更快地让您跑通当前的接入流程,但该方案会将您的 SecretKey 暴露在 App 的代码当中,这并不利于您后续升级和保护您的 SecretKey,所以我们强烈建议您将 userSig 的计算逻辑放在服务端进行,并由 App 在每次使用 TUICallKit 组件时向您的服务器请求实时计算出的 userSig。
步骤5:拨打通话
使用 call 接口拨打电话
主叫方与被叫方登录成功后,主叫方通过调用 TUICallKit 的 call 方法并指定通话类型和被叫方的 userId,就可以发起语音或者视频通话,被叫方此时就可接受到来电邀请。
// 假设给mike拨打视频电话TUICallKit.instance.call('mike', TUICallMediaType.video);
在 tencent_chat_uikit 中拨打电话
如果您在 tencent_chat_uikit 使用 TUICallKit 您可以直接点击聊天页面中的通话按钮发起音视频通话。
更多特性
界面定制
群组通话
悬浮窗
美颜特效
自定义铃声
监听通话状态
云端录制
常见问题
交流与反馈
如果您在使用过程中,有什么建议或者意见,可以在这里反馈:TUICallKit 产品反馈问卷,感谢您的反馈。
如果您是开发者,也欢迎您加入我们的 TUICallKit 技术交流 QQ 群:605115878,进行技术交流和产品沟通。