产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明

flutter pubaddtencent_calls_uikit
android/app/build.gradle 文件中配置并开启混淆规则:android {......buildTypes {release {......minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}}
android/app 目录下创建 proguard-rules.pro 文件,并在其中添加如下代码:-keep class com.tencent.** { *; }
android/app/build.gradle 文件中配置开启 Multidex 支持。android {......defaultConfig {......multiDexEnabled true}}
Info.plist 文件中,在顶级 <dict> 目录下添加以下两项。<key>NSCameraUsageDescription</key><string>CallingApp需要访问您的相机权限,开启后录制的视频才会有画面</string><key>NSMicrophoneUsageDescription</key><string>CallingApp需要访问您的麦克风权限,开启后录制的视频才会有声音</string>
import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';......class XXX extends StatelessWidget {const XXX({super.key});@overrideWidget build(BuildContext context) {return MaterialApp(navigatorObservers: [TUICallKit.navigatorObserver],......);}}
login 接口完成插件的登录。此步骤至关重要:只有成功登录后,您才能正常使用 TUICallKit 提供的各项功能。import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';import 'package:tencent_calls_uikit/debug/generate_test_user_sig.dart';......final String userID = 'xxxxx'; // 请替换为您的 UserIdfinal int sdkAppID = 0; // 请替换为第一步在控制台得到的 SDKAppIDfinal String secretKey = 'xxxx'; // 请替换为第一步在控制台得到的 SecretKeyvoid login() async {String userSig = GenerateTestUserSig.genTestSig(userID, sdkAppID, secretKey);TUIResult result = await TUICallKit.instance.login(sdkAppID, userID, userSig);if (result.code.isEmpty) {print('Login success');} else {print('Login failed: ${result.code} ${result.message}');}}
参数 | 类型 | 说明 |
userID | String | 客户根据自己的业务自定义用户 ID,只允许包含大小写英文字母(a-z A-Z)、数字(0-9)及下划线和连词符。 |
sdkAppID | int | |
secretKey | String | |
userSig | String | 一种安全保护签名,用于对用户进行登录鉴权认证,确认用户是否真实,阻止恶意攻击者盗用您的云服务使用权。 |
GenerateTestUserSig.genTestSig函数生成 userSig。该方法中 secretKey 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量。setSelfInfo 接口设置头像和昵称:import 'package:tencent_calls_uikit/tencent_calls_uikit.dartvoid _setSelfInfo() {String nickname = "jack"String avatar = "https:/****/user_avatar.png"TUIResult result = TUICallKit.instance.setSelfInfo(nickname, avatar);}
参数 | 类型 | 说明 |
nickname | String | 目标用户的昵称。 |
avatar | String | 目标用户的头像。 |
calls 函数,并指定媒体类型和被叫方用户 ID 列表,来发起语音或视频通话。calls 接口同时支持一对一通话和多人通话。当 userIdList 中包含一个 userId 时,为一对一通话;当 userIDList 包含多个 userId 时,则为多人通话。import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';......void _call() {List<String> userIdList = ['vince'];TUICallMediaType mediaType = TUICallMediaType.audio;TUICallParams callParams = TUICallParams();TUICallKit.instance.calls(participantIds, mediaType, callParams);}
参数 | 类型 | 说明 |
userIdList | List<String> | 目标用户的 userId 列表。 |
mediaType | 通话的媒体类型,例如视频通话、语音通话。 | |
params | 通话扩展参数,例如房间号、通话邀请超时时间,离线推送自定义内容等。 |

import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';......void _enableFloatWindow() {TUICallKit.instance.enableFloatWindow(true);}
enableIncomingBanner 开启/关闭来电横幅显示,该功能默认为关闭状态(false)。当被叫端收到来电时,默认展示全屏通话等待界面。启用此功能后,将首先显示一个横幅通知,然后根据需要切换到全屏通话界面。请注意,显示来电横幅需要授予悬浮窗权限,具体的显示策略将根据权限设置及应用当前是否在前台或后台运行来决定。
import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';......void _enableFloatWindow() {TUICallKit.instance.enableIncomingBanner(true);}
calls 方法发起通话时,若被叫用户列表超过一人,则自动视为群组通话。其他成员可通过 join 方法加入该多人通话。calls 方法发起通话时,若被叫用户列表(userIdList)超过一人,则自动视为群组通话。import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';void _call() {List<String> userIdList = ['vince','mike'];TUICallMediaType mediaType = TUICallMediaType.audio;TUICallParams callParams = TUICallParams();TUICallKit.instance.calls(participantIds, mediaType, callParams);}
参数 | 类型 | 说明 |
userIdList | List<String> | 目标用户的 userId 列表。 |
mediaType | 通话的媒体类型,例如视频通话、语音通话。 | |
params | 通话扩展参数,例如房间号、通话邀请超时时间,离线推送自定义内容等。 |
join 方法加入指定的群组通话。import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';void join() {String callId = "123456";TUICallKit.instance.join(callId);}
参数 | 类型 | 说明 |
callId | String | 此次通话的唯一标识。 |
setCallingBell 接口设置被叫端收到的来电铃声。import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';......void _setCallingBell() {TUICallKit.instance.setCallingBell('flieName');}
参数 | 类型 | 说明 |
fileName | String | 铃声名称。 |
import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';......void _setCallingBell() {TUICallKit.instance.enableMuteMode(true);}
TUIOfflinePushInfo.iOSSound 的 iOSSound 及 androidSound 字段。call和groupcall接口中的参数params中的TUIOfflinePushInfo.iOSSound设置iOS平台上的离线消息铃声。图标 | 文件名称 | 说明 |
![]() | dialing.png | 接听来电图标 |
![]() | hangup.png | 挂断通话图标 |
![]() | mute_on.png | 关闭麦克风图标 |
![]() | handsfree.png | 关闭扬声器图标 |
![]() | camera_off.png | 关闭摄像头图标 |
![]() | add_user.png | 通话过程中邀请用户图标 |
文档反馈