功能预览
TUILiveKit 是一个功能全面的直播组件,集成后可快速实现以下功能模块
主播准备页 | 主播开播页 | 直播列表 | 观众观看页 |
![]() | ![]() | ![]() | ![]() |
准备工作
开通服务
环境要求
Xcode:需使用 Xcode 15 或更高版本。
iOS 系统:支持 iOS 13.0 或更高版本的设备。
CocoaPods 环境:已安装 CocoaPods 环境。如果您尚未安装,请参见 CocoaPods官网安装,或按以下步骤操作:
使用 gem 安装 CocoaPods:在终端中执行
sudo gem install cocoapods
命令进行安装。提示:
sudo gem install cocoapods
安装过程中可能需要输入电脑密码,按提示输入管理员密码即可。代码集成
步骤 1:通过 CocoaPods 导入组件
1. 添加 Pod 依赖:
若项目已有 Podfile 文件。
在您项目的
Podfile
文件中添加 pod 'TUILiveKit'
依赖。例如:target 'YourProjectTarget' do# 其他已有的 Pod 依赖...# 添加pod 'TUILiveKit'
依赖pod 'TUILiveKit'end
若项目没有 Podfile 文件。
在终端中通过
cd
命令切换到您的 .xcodeproj
目录下,然后执行 pod init
命令创建 Podfile
文件,创建完成后,在您的 Podfile
文件中添加 pod 'TUILiveKit'
依赖。例如:// 如果您的项目目录是 /Users/yourusername/Projects/YourProject// 1. cd 到您的.xcodeproj
工程目录下cd /Users/yourusername/Projects/YourProject// 2. 执行pod init,此命令运行完后,会在您的工程目录下生成一个 Podfile 文件。
pod init
//
3
. 在生成的Podfile
文件中添加pod
'TUILiveKit'
依赖target 'YourProjectTarget' do# 添加pod 'TUILiveKit'
依赖pod 'TUILiveKit'end
2. 安装组件:
在终端中
cd
到 Podfile
文件所在的目录,然后执行以下命令安装组件。pod install
步骤 2:工程配置
为了使用音视频功能,您的应用需要获取麦克风和摄像头的权限。请在应用的
Info.plist
文件中添加以下两项,并填写对应的使用说明,这些说明将在系统请求权限时向用户显示:<key>NSCameraUsageDescription</key><string>TUILiveKit需要访问你的相机权限,开启后录制的视频才会有画面</string><key>NSMicrophoneUsageDescription</key><string>TUILiveKit需要访问您的麦克风权限,开启后录制的视频才会有声音</string>

完成登录
代码集成完成后,您需要完成登录,这是使用 TUILiveKit 的关键步骤,因为只有在登录成功后才能正常使用 TUILiveKit 的各项功能,故请您耐心检查相关参数是否配置正确:
说明:
在示例代码中,登录操作是在
didFinishLaunchingWithOptions
方法内完成的。但在实际项目场景下,强烈推荐 您在完成自己的用户身份验证等相关登录操作后,再调用 TUILiveKit 的登录服务。这样可以避免因过早调用登录服务,导致业务逻辑混乱或数据不一致的问题,同时也能更好地适配您项目中现有的用户管理和权限控制体系。//// AppDelegate.swift//// 1. 导入 TUICoreimport TUICore// 2. 示例代码在 didFinishLaunchingWithOptions 完成登录,推荐您在自己登录业务完成后再调用登录服务func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {// 3. 调用登录接口TUILogin.login(1400000001, // 请替换为开通服务控制台的 SDKAppIDuserID: "denny", // 请替换为您的 UserIDuserSig: "xxxxxxxxxxx") { // 您可以在控制台中计算一个 UserSig 并填在这个位置print("login success")} fail: { (code, message) inprint("login failed, code: \\(code), error: \\(message ?? "nil")")}return true}
//// AppDelegate.m//// 1. 导入 TUICore#import <TUICore/TUILogin.h>// 2. 示例代码在 didFinishLaunchingWithOptions 完成登录,推荐您在自己登录业务完成后再调用登录服务- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// 3. 调用登录接口[TUILogin login:1400000001 // 请替换为开通服务控制台的 SDKAppIDuserID:@"denny" // 请替换为您的 UserIDuserSig:@"xxxxxxxxxxx" // 您可以在控制台中计算一个 UserSig 并填在这个位置succ:^{NSLog(@"login success");} fail:^(int code, NSString * _Nullable msg) {NSLog(@"login failed, code: %d, error: %@", code, msg);}];return YES;}
登录接口参数说明:
参数 | 类型 | 说明 |
SDKAppID | Int | |
userID | String | 当前用户的唯一 ID,仅包含英文字母、数字、连字符和下划线。为避免多端登录冲突,请勿使用 1 、123 等简单 ID。 |
userSig | String | 用于腾讯云鉴权的票据。请注意: 开发环境:您可以采用本地 GenerateTestUserSig.genTestSig 函数生成 userSig 或者 通过 UserSig 辅助工具 生成临时的 UserSig。生产环境:为了防止密钥泄露,请务必采用服务端生成 UserSig 的方式。详细信息请参考 服务端生成 UserSig。 |
登录异常状态处理【可选】
TUILogin
提供了登录状态回调机制,方便您处理可能出现的登录异常情况,主要包括 “被踢下线” 和 “签名过期” 这两种异常状态的回调:被踢下线:用户在线情况下被踢,IM SDK 会通过
onKickedOffline
回调通知给您,此时可以在 UI 提示用户,并调用 TUILogin.login
重新登录。签名过期:用户在线期间收到 onUserSigExpired 回调,说明您之前给该用户签发的 userSig 已经过期了,这个时候如果当前用户在您后台的登录态依然有效,您可以让您的 app 向您的后台请求新的 userSig,并调用 TUILogin.login 续签登录态。
// YourLoginService 代表您负责登录的业务模块class YourLoginService: NSObject {// 监听登录状态回调func addLoginListener() {TUILogin.add(self)}// 取消监听登录状态回调func removeLoginListener() {TUILogin.remove(self)}}// 实现登录回调 TUILoginListenerextension YourLoginService: TUILoginListener {// 用户被踢下线回调func onKickedOffline() {// 您的业务代码:UI 交互提示用户,然后重新登录}// 用户签名过期回调func onUserSigExpired() {// 您的业务代码:如果当前用户在您后台的登录态依然有效,您可以让您的 app 向您的后台请求新的 userSig,并调用 TUILogin.login 续签登录态。}}
@interface YourLoginService() <TUILoginListener>// 监听登录状态回调- (void)addLoginListener;// 取消监听登录状态回调- (void)removeLoginListener;@end@implementation YourLoginService// 监听登录状态回调- (void)addLoginListener {[TUILogin add:self];}// 取消监听登录状态回调- (void)removeLoginListener {[TUILogin remove:self];}#pragma mark - TUILoginListener// 用户被踢下线回调- (void)onKickedOffline {// 您的业务代码:UI 交互提示用户,然后重新登录}// 用户签名过期回调- (void)onUserSigExpired {// 您的业务代码:UI 交互提示用户,然后重新登录}@end
下一步
恭喜您,现在您已经成功集成了视频直播组件并完成了登录。接下来,您可以实现主播开播、观众观看、直播列表等功能,可参考下表:
常见问题
pod install 执行后本地安装找不到 TUILiveKit 最新版本?
如果无法安装 TUILiveKit 最新版本,请按以下步骤操作:
1. 在 Podfile 所在目录下删除
Podfile.lock
和 Pods
,您可以选择手动删除或终端执行以下命令// cd 到 Podfile 所在目录下rm -rf Pods/rmPodfile.lock
2. 在 Podfile 所在目录下执行
pod install --repo-update
// cd 到 Podfile 所在目录下pod install --repo-update
每次进房都需要调用登录吗?
不需要。通常您只需要完成一次
TUILogin.login
调用即可,我们建议您将 TUILogin.login
和 TUILogin.logout
与自己的登录业务关联。Podfile 文件有没有示例配置可以参考?