产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明
主播准备页 | 主播开播页 | 直播列表 | 观众观看页 |
![]() | ![]() | ![]() | ![]() |
flutter pubaddtencent_live_uikit
Resolving dependencies...Downloading packages.........+ tencent_live_uikit x.x.x......Changed xx dependencies!xx packages have newer versions incompatible with dependency constraints.Try `flutter pub outdated` for more information.
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 {......// 开启 Multidex 支持multiDexEnabled true}}
Non-Global Symbols ,以保留所需要的全局符号信息。此配置是必需的,否则可能在运行时出现异常,无法进入房间。ios/Podfile 文件中添加以下代码:target 'xxxx' do......end......post_install do |installer|installer.pods_project.targets.each do |target|flutter_additional_ios_build_settings(target)target.build_configurations.each do |config|config.build_settings['VALID_ARCHS'] = 'arm64 arm64e x86_64'config.build_settings['VALID_ARCHS[sdk=iphonesimulator*]'] = 'x86_64'endendend
Info.plist 的第一级 <dict> 目录下添加以下内容,这些说明将在系统请求权限时向用户显示:<key>NSMicrophoneUsageDescription</key><string>CallingApp需要访问您的麦克风权限,开启后录制的视频才会有声音</string>
ios/Podfile 中添加以下预处理器定义,用于启用麦克风权限。post_install do |installer|installer.pods_project.targets.each do |target|flutter_additional_ios_build_settings(target)target.build_configurations.each do |config|config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','PERMISSION_MICROPHONE=1',]endendend
navigatorObservers 中添加 TUILiveKitNavigatorObserver.instance,用于监听页面路由变化和管理组件生命周期。localizationsDelegates 中添加相关本地化代理,确保界面文案能够根据系统语言正确显示。import 'package:tencent_live_uikit/tencent_live_uikit.dart';// 您自己的 App 主类class XXX extends StatelessWidget {const XXX({super.key});@overrideWidget build(BuildContext context) {return MaterialApp(// 添加 TUILiveKit 导航观察者,用于监听页面路由变化和生命周期管理navigatorObservers: [TUILiveKitNavigatorObserver.instance],// 添加本地化代理,支持多语言文案显示localizationsDelegates: [...LiveKitLocalizations.localizationsDelegates,...BarrageLocalizations.localizationsDelegates,...GiftLocalizations.localizationsDelegates],// 您 App 的其他配置......);}}
TUILogin.login 完成登录,这是使用 TUILiveKit 的关键步骤,因为只有在登录成功后才能正常使用 TUILiveKit 的各项功能,请确保相关参数配置正确:import 'package:tencent_cloud_uikit_core/tencent_cloud_uikit_core.dart';......login() async {await TUILogin.instance.login(1400000001, // 请替换为开通服务控制台的 SDKAppID"denny", // 请替换为您的 UserID"xxxxxxxxxxx", // 您可以在控制台中计算一个 UserSig 并填在这个位置TUICallback(onError: (code, message) {print("TUILogin login fail, {code:$code, message:$message}");},onSuccess: () async {print("TUILogin login success");},),);}
参数 | 类型 | 说明 |
SDKAppID | int | |
userID | String | 当前用户的唯一 ID,仅包含英文字母、数字、连字符和下划线。为避免多端登录冲突,请勿使用 1、123 等简单 ID。 |
userSig | String | 用于腾讯云鉴权的票据。请注意: 开发环境:您可以采用本地 GenerateTestUserSig 类(example/lib/debug/generate_test_user_sig.dart)的 genTestSig 函数生成 userSig 或者 通过 UserSig 辅助工具 生成临时的 UserSig。生产环境:为了防止密钥泄露,请务必采用服务端生成 UserSig 的方式。详细信息请参考 服务端生成 UserSig。 |
App 的 MaterialApp 首页是在 rootNavigator 上显示。如果您希望直播间支持浮窗功能(即在直播过程中可以最小化直播窗口,悬浮在其他页面上方继续观看),需要在 rootNavigator 上添加一层二级导航器 secondaryNavigator,把首页移到 secondaryNavigator 上。直播页面的 Overlay 将会放在 secondaryNavigator 上展示。secondaryNavigator 用于承载 Overlay,并常驻 App,以实现悬浮窗的效果。import 'package:tencent_live_uikit/tencent_live_uikit.dart';import 'package:tencent_live_uikit/common/widget/global.dart';// 您自己的 App 主类class XXX extends StatelessWidget {const XXX({super.key});@overrideWidget build(BuildContext context) {return MaterialApp(// 首页配置home: Navigator(// Global.secondaryNavigatorKey 是 TUILiveKit 提供的用于管理浮窗页面的全局导航器 Key。key: Global.secondaryNavigatorKey,onGenerateRoute: (settings) => MaterialPageRoute(settings: const RouteSettings(name: 'home_widget'),builder: (BuildContext context) {// HomeWidget 是您自己的应用首页 Widget,请替换为您实际的首页类return const HomeWidget();},),),// 您 App 的其他配置......);}}
TUILogin.login 调用即可,我们建议您将 TUILogin.login 和 TUILogin.logout 与自己的登录业务关联。Non-Global Symbols ,以保留所需要的全局符号信息,否则可能在运行时出现异常,无法进入房间。文档反馈