tencent cloud

文档反馈

最后更新时间:2023-09-14 14:51:18
    本文将介绍如何用最短的时间完成TUIRoomKit组件的接入,跟随本文档,您将在一个小时的时间内完成如下几个关键步骤,并最终得到一个包含完备 UI 界面的音视频会议功能。

    环境准备

    iOS 13.0及更高。

    步骤一:开通服务

    TUIRoomKit 当前处于内测阶段,SDK 能力限时免费使用,更多产品内测说明,请查看 关于多人音视频 Conference 开启内测公告
    首先请在 TRTC 控制台 创建应用,并记录 SDKAppID 和 SecretKey 参数,这些参数在后续接入过程中会被使用,创建应用及参数位置如下图所示:
    
    
    

    步骤二:集成 TUIRoomKit 组件

    使用 CocoaPods 导入组件,具体步骤如下:
    1. 在您的 Podfile 文件中添加以下依赖。
    pod 'TUIRoomKit'
    pod 'TUIVideoSeat' # 视频位视图挂件
    2.执行以下命令,安装组件。
    pod install
    如果无法安装 TUIRoomKit 最新版本,执行以下命令更新本地的 CocoaPods 仓库列表。
    pod repo update

    步骤三:完成工程配置

    使用音视频功能,需要授权麦克风和摄像头的使用权限。在 App 的 Info.plist 中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。
    <key>NSCameraUsageDescription</key>
    <string>TUIRoom需要访问您的相机权限</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>TUIRoom需要访问您的麦克风权限</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>TUIRoom需要访问您的相册</string>
    
    
    

    步骤四:初始化 TUIRoomKit 组件

    在您的项目中添加如下代码,它的作用是通过调用TUIRoomKit 中的相关接口完成组件的初始化。这个步骤非常关键,因为只有在初始化后才能正常使用 TUIRoomKit 的各项功能,故请您耐心检查相关参数是否配置正确:
    TUIRoomKit.sharedInstance.login(sdkAppId: 1400000001, // 请替换为步骤一取到的 SDKAppID
                     userId: "xxxxxxxxxx",// 请替换为您的 UserID
                     userSig: "998")      // 您可以在控制台中计算一个 UserSig 并填在这个位置
    参数说明 这里详细介绍一下 login 函数中所需要用到的几个关键参数:
    SDKAppID:在步骤一中您已经获取到,这里不再赘述。
    UserID:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。
    UserSig:使用步骤一获取的 SecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台总览页中顶部的 UserSig 生成功能,创建一个临时可用的 UserSig。
    
    
    更多信息请参见 UserSig 相关
    注意:
    这个步骤也是目前我们收到的开发者反馈最多的步骤,常见问题如下:
    SDKAppID 设置错误,请正确使用国际站点的 SDKAppID,否则会无法接入。
    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 在每次使用 TUIRoomKit 组件时向您的服务器请求实时计算出的 UserSig。

    步骤五:使用 TUIRoomKit

    设置用户信息

    通过调用 TUIRoomKit 的 setSelfInfo 即可设置用户的用户名、头像。
    TUIRoomKit.sharedInstance.setSelfInfo(userName: "xx", avatarURL: "xx")
    参数
    类型
    含义
    userName
    String
    用户名
    avatarURL
    String
    用户头像 URL

    准备页面(可选)

    通过调用 TUIRoomKit 的 enterPrepareView 就可以进入准备页面。
    TUIRoomKit.sharedInstance.enterPrepareView(enablePreview: true)
    参数
    类型
    含义
    enablePreview
    Bool
    是否开启视频预览

    创建房间

    通过调用 TUIRoomKit 的 createRoom 函数并指定房间的类型为TUIRoomKit.RoomScene.meeting,就可以创建房间。
    进会参数说明:
    public enum RoomScene {
        case meeting
        case live
    }
    
    public class RoomInfo {
    public var ownerId: String // 主持人id
    public var name: String // 房间名称,仅主持人可设置
    public var roomId: String // 房间号
    public var isOpenCamera: Bool // 进会是否开启摄像头
    public var isOpenMicrophone: Bool // 进会是否开启麦克风
    public var isUseSpeaker: Bool // 进会是否开启扬声器
    public var isCameraDisableForAllUser: Bool = false // 会话期间是否禁止打开摄像头,仅房主可设置,默认不禁止,中途可修改
    public var isMicrophoneDisableForAllUser: Bool = false // 会话期间是否禁止打开麦克风,仅房主可设置,默认不禁止,中途可修改
    public var isMessageDisableForAllUser: Bool = false // 会话期间是否禁止发送消息,仅房主可设置,默认不禁止,中途可修改
    public var speechMode: TUISpeechMode //房间发言模式,仅房主可设置
    }
    示例代码:
    let roomInfo = RoomInfo()
    roomInfo.name = "xx"; // 请设置为您需要的房间名称
    roomInfo.roomId = "998" // 请设置为您需要的房间号
    roomInfo.isOpenCamera = true // 请按照您的业务需求设置
    roomInfo.isOpenMicrophone = true // 请按照您的业务需求设置
    roomInfo.isUseSpeaker = true // 请按照您的业务需求设置
    roomInfo.speechMode = .freeToSpeak // 请按照您的业务需求设置
    TUIRoomKit.sharedInstance.createRoom(roomInfo: roomInfo, type: .meeting)
    参数
    类型
    含义
    roomInfo
    RoomInfo
    房间的基本信息
    scene
    TUIRoomKit.RoomScene
    房间类型,示例:.meeting

    加入多人音视频房间

    通过调用 TUIRoomKit 的 enterRoom 函数并指定房间类型与房间号,就可以进入指定房间。
    let roomInfo = RoomInfo()
    roomInfo.roomId = "998" // 请设置为您要进入的房间号
    roomInfo.isOpenCamera = true // 请按照您的业务需求设置
    roomInfo.isOpenMicrophone = true // 请按照您的业务需求设置
    roomInfo.isUseSpeaker = true // 请按照您的业务需求设置
    TUIRoomKit.sharedInstance.enterRoom(roomInfo: roomInfo)
    参数
    类型
    含义
    roomInfo
    RoomInfo
    房间的基本信息
    说明:
    加入房间时的 RoomInfo 参数只需关注roomId、isOpenCamera、isUseSpeaker、isOpenMicrophone四个字段,其他字段无需设置

    步骤六:更多特性

    UI 挂件接入

    使用 CocoaPods 导入美颜挂件,具体步骤如下:
    1. 在您的 Podfile 文件中添加以下依赖。
    pod 'TUIBeauty' # [可选] 美颜挂件
    2.执行以下命令,安装组件。
    pod install

    常见问题

    如果您选择同时集成 RoomKit 与 CallKit, 可以参考以下集成方式,后续我们会尽快优化多组件之间的集成方式。
    # CallKit
    pod 'TUICallKit', '~> 1.4.0.256' # 同时集成RoomKit与CallKit,推荐TUICallKit 1.4.0.256及以上版本
     
    # RoomKit
    pod 'TUIRoomKit', '~> 1.0.1' # 同时集成RoomKit与CallKit,推荐TUIRoomKit 1.0.1 及以上版本
    
    
    # Kingfisher(swift 网络图片缓存库) 版本号设置参考:https://github.com/onevcat/Kingfisher
    # iOS 10+ Xcode 12 推荐选择 pod 'Kingfisher', '~> 6.3.1'
    # iOS 11+ Xcode 13 推荐选择 pod 'Kingfisher', 'version6-xcode13'
    # iOS 12+ Xcode 13 推荐选择 pod 'Kingfisher', '~> 7.0'
    pod 'Kingfisher', '~> 6.3.1'

    交流与反馈

    如果有任何需要或者反馈,您可以联系:colleenyu@tencent.com。
    联系我们

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

    技术支持

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

    7x24 电话支持