有奖捉虫:云通信与企业服务文档专题,速来> HOT
本文将介绍如何快速完成TUIRoomKit组件的接入,跟随本文档,您将在一小时的时间内完成如下几个关键步骤,并最终得到一个包含完备 UI 界面的音视频会议功能。

开发环境要求

iOS 13.0 及更高。
Xcode 12.0 及更高。
Swift 4.2 及更高。

开通服务

在使用 TUIRoomKit 发起会议前,您需要开通 TUIRoomKit 专属的多人音视频互动服务,详细步骤如下:
1. 登录 实时音视频 TRTC 控制台,单击进入左侧应用管理页面,点击创建应用。



2. 在创建应用的弹窗中,输入您的应用名称,并单击勾选免费领取7天体验版后,点击下方确认按钮。
注意:
领取体验版后仅开通 TUIRoomKit 7天的体验资格,测试过程中所产生的音视频时长等资源消耗,仍会按照实时音视频 TRTC 标准计费规则计费;
新账号首次可前往 试用中心 免费领取10000分钟音视频时长;
如果所选 SDKAppID 体验版领取次数已达上限,需要购买 TUIRoomKit 包月套餐才能开通服务,请点击场景套餐订阅按钮或前往 购买页 购买;



3. 创建完成后,可以看到体验版的基本信息,包括服务状态、版本信息和功能详情、到期时间。这里的 SDKAppID、SDKSecretKey 会在后续步骤中使用到。




CocoaPods 集成

方式一:拉取远程 CocoaPods 集成(无源码修改时推荐)

1. 在您的 Podfile 文件中添加以下依赖。
pod 'TUIRoomKit'
2. 执行以下命令,安装组件。
pod install
3. 如果无法安装 TUIRoomKit 最新版本,执行以下命令更新本地的 CocoaPods 仓库列表。
pod repo update

方式二:源码集成(有源码修改时推荐)

1. 从 GitHub 下载 TUIRoomKit 源码。直接拖入您的工程目录下: TUIRoomKit/iOS/TUIRoomKit。



2. 修改您Podfile中TUIRoomKit组件的路径,例如:
pod 'TUIRoomKit', :path => "../TUIRoomKit/"
3. 执行安装命令
pod install

快速搭建

步骤1:工程配置

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




步骤2:组件登录

在您的项目中添加如下代码,它的作用是通过调用TUICore 中的相关接口完成TUI组件的初始化。这个步骤非常关键,因为只有在登录成功后才能正常使用 TUIRoomKit 的各项功能,故请您耐心检查相关参数是否配置正确:
import TUICore

TUILogin.login(1400000001, // 请替换为步骤一取到的 SDKAppID
userID: "998", // 请替换为您的 UserID
userSig: "xxxxxxxxxx") { // 您可以在控制台中计算一个 UserSig 并填在这个位置
print("login success")
} fail: { (code, message) in
print("login failed, code: \\(code), error: \\(message ?? "nil")")
}
参数说明 这里详细介绍一下 login 函数中所需要用到的几个关键参数:
SDKAppID:在 开通服务 中的第3步中您已经获取到,这里不再赘述。
UserID:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。
UserSig:使用 开通服务 的第3步中获取的 SDKSecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台中的 辅助工具 生成一个临时可用的 UserSig。
更多信息请参见 如何计算及使用 UserSig

步骤3:设置用户昵称和头像

调用TUIRoomEnginesetSelfInfo即可设置用户的用户名、头像,可以在登录成功的回调中设置。
import TUIRoomEngine

TUIRoomEngine.setSelfInfo(userName: "xxx", avatarUrl: "xxx") {
print("setSelfInfo success")
} onError: { code, message in
print("setSelfInfo failed, code:\\(code),message:\\(message)")
}

步骤4:主持人发起快速会议

会议主界面为ConferenceMainViewController,只需调用 quickStartConference 发起快速会议,并在onConferenceStarted回调中跳转到会议主界面,即可发起快速会议。
import TUIRoomKit

// CreateRoomViewController 为您自己的 ViewController
class CreateConferenceViewController: UIViewController {
private var conferenceViewController: ConferenceMainViewController?
func quickStartConferenceAction() {
conferenceViewController = ConferenceMainViewController()
conferenceViewController?.setConferenceObserver(observer: self)
conferenceViewController?.quickStartConference(conferenceId: "123456")
}
}
extension CreateConferenceViewController: ConferenceObserver {
func onConferenceStarted(conferenceId: String, error: ConferenceError) {
if error == .success, let vc = conferenceViewController {
navigationController?.pushViewController(vc, animated: true)
}
conferenceViewController = nil
}
}

步骤5:普通成员加入会议

会议主界面为ConferenceMainViewController,只需调用 joinConference 加入会议,并在onConferenceJoined回调中跳转到会议主界面,即可参与当前会议。
import TUIRoomKit

// EnterRoomViewController 为您自己的 ViewController
class EnterConferenceViewController: UIViewController {
private var conferenceViewController: ConferenceMainViewController?
private func joinConferenceAction() {
conferenceViewController = ConferenceMainViewController()
conferenceViewController?.setConferenceObserver(observer: self)
conferenceViewController?.joinConference(conferenceId: "123456")
}
}
extension EnterConferenceViewController: ConferenceObserver {
func onConferenceJoined(conferenceId: String, error: ConferenceError) {
if error == .success, let vc = conferenceViewController {
navigationController?.pushViewController(vc, animated: true)
}
conferenceViewController = nil
}
}

更多特性

接入聊天挂件

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

常见问题

如果您选择同时集成 RoomKit 与 CallKit, 可以参考以下集成方式,后续我们会尽快优化多组件之间的集成方式。
# CallKit
pod 'TUICallKit', '~> 1.9.0.680' # 同时集成RoomKit与CallKit,推荐TUICallKit 1.9.0.680及以上版本
# RoomKit
pod 'TUIRoomKit', '~> 1.5.1' # 同时集成RoomKit与CallKit,推荐TUIRoomKit 1.5.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'

交流与反馈

您在接入或使用过程有任何需要或者反馈,欢迎加入 腾讯云实时音视频 TRTC 技术交流群 进行技术交流和问题反馈。