tencent cloud

文档反馈

最后更新时间:2024-05-17 11:20:41
    本文将介绍如何在短时间内完成 TUILiveKit 组件的接入,跟随本文档,您将在一小时内完成如下几个关键步骤,并最终得到一个包含完备 UI 界面的视频或语音直播功能。

    环境准备

    Xcode 13 及以上
    iOS 13.0 及以上
    CocoaPods环境安装,点击查看
    如果您的接入和使用中遇到问题,请参见 常见问题

    步骤一:开通服务

    在使用腾讯云提供的音视频服务前,您需要前往控制台,为应用开通音视频服务。具体步骤请参见 开通服务(TUILiveKit)

    步骤二:导入 TUILiveKit 组件

    使用 CocoaPods 导入组件,如果您遇到问题,请先参见 环境准备。导入组件具体骤如下:
    1. 请在您的 Podfile 文件中添加 pod 'TUILiveKit' 依赖,如果您遇到任何问题,请参见 Example 工程。
    Swift
    target 'xxxx' do
    ...
    ...
    pod 'TUILiveKit'
    end
    如果您没有Podfile 文件,首先终端cdxxxx.xcodeproj目录,然后通过以下命令创建:
    pod init
    2. 在终端中,首先cdPodfile目录下,然后执行以下命令,安装组件。
    pod install
    如果无法安装 TUILiveKit 最新版本,可以先删除Podfile.lockPods。然后执行以下命令更新本地的 CocoaPods 仓库列表。
    pod repo update
    之后执行以下命令,更新组件库的 Pod 版本。
    pod update
    3. 可以先编译运行一下,如果遇到问题,请参见 常见问题。问题如果依然无法解决,可以先去跑一下我们的 Example工 程。您在接入和使用过程中遇到的任何问题,欢迎给我们 反馈

    步骤三:工程配置

    使用音视频功能,需要授权麦克风和摄像头的使用权限。在 App 的 Info.plist 中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。
    <key>NSCameraUsageDescription</key>
    <string>TUILiveKit需要访问你的相机权限,开启后录制的视频才会有画面</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>TUILiveKit需要访问您的麦克风权限,开启后录制的视频才会有声音</string>
    
    
    

    步骤四:登录

    在您的项目中添加如下代码,它的作用是通过调用 TUICore 中的相关接口完成 TUI 组件的登录。这个步骤非常关键,因为只有在登录成功后才能正常使用 TUILiveKit 的各项功能,故请您耐心检查相关参数是否配置正确:
    Swift
    //
    // AppDelegate.swift
    //
    
    import TUICore
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    TUILogin.login(1400000001, // 请替换为步骤一取到的 SDKAppID
    userID: "denny", // 请替换为您的 UserID
    userSig: "xxxxxxxxxxx") { // 您可以在控制台中计算一个 UserSig 并填在这个位置
    print("login success")
    } fail: { (code, message) in
    print("login failed, code: \\(code), error: \\(message ?? "nil")")
    }
    return true
    }
    参数说明 这里详细介绍一下 login 函数中所需要用到的几个关键参数:
    SDKAppID:在 步骤一 中的最后一步中您已经获取到,这里不再赘述。
    UserID:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。
    UserSig:使用 开通服务(TUILiveKit)获取的 SDKSecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台左侧项目栏中的 UserSig 工具,创建一个临时可用的 UserSig。
    
    
    
    更多信息请参见 UserSig 相关
    注意:
    这个步骤也是目前我们收到的开发者反馈最多的步骤,常见问题如下:
    SDKAppID 设置错误。
    userSig 被错配成了加密密钥(Secretkey),userSig 是用 SecretKey 把 SDKAppID、userID 以及过期时间等信息加密得来的,而不是直接把 SecretKey 配置成 userSig。
    userSig 被设置成“1”、“123”、“111”等简单字符串,由于 TRTC 不支持同一个 UserID 多端登录,所以在多人协作开发时,形如 “1”、“123”、“111” 这样的 userID 很容易被您的同事占用,导致登录失败,因此我们建议您在调试的时候设置一些辨识度高的 userID。
    Github 中的示例代码使用了 genTestUserSig 函数在本地计算 userSig 是为了更快地让您跑通当前的接入流程,但该方案会将您的 SecretKey 暴露在 App 的代码当中,这并不利于您后续升级和保护您的 SecretKey,所以我们强烈建议您将 userSig 的计算逻辑放在服务端进行,并由 App 在每次使用 TULiveKit 组件时向您的服务器请求实时计算出的 userSig。

    步骤五:进入语音聊天室预览画面

    通过加载 TUILiveKit 的TUIVoiceRoomViewController页面,就可以拉起预览画面,点击“开始直播”即可创建语音聊天室。
    Swift
    //
    // MainViewController.swift
    //
    
    import UIKit
    import TUILiveKit
    
    @objc private func buttonTapped(_ sender: UIButton) {
    //RoomId可以自定义生成
    let roomId = "123666";
    
    // 进入语音聊天室预览画面
    var roomParams = RoomParams()
    // 房间最大麦位数,默认套餐包支持的最大麦位数量
    roomParams.maxSeatCount = 0
    roomParams.seatMode = .applyToTake
    
    let voiceRoomController = TUIVoiceRoomViewController(roomId: roomId, behavior: .prepareCreate, roomParams: roomParams)
    self.navigationController?.pushViewController(voiceRoomController, animated: true)
    }
    
    
    
    
    
    
    语音聊天室预览画面
    语音聊天室房间内画面

    步骤六:观众进入直播间

    Swift
    //
    // MainViewController.swift
    //
    
    import UIKit
    import TUILiveKit
    
    @objc private func buttonTapped(_ sender: UIButton) {
    //RoomId是创建语音聊天室的房间id
    let roomId = "123666";
    
    // 进入语音聊天室
    let viewController = TUIVoiceRoomViewController(roomId: roomId, behavior: .join)
    self.navigationController?.pushViewController(viewController, animated: true)
    }
    
    
    
    
    
    
    语音聊天室
    语音聊天室

    更多特性

    弹幕
    礼物

    常见问题

    如果您的接入和使用中遇到问题,请参见 常见问题
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持