腾讯云实时音视频iOS_音视频解决方案_同尘科技

实时音视频 2年前 (2023-10-30) 浏览 164

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

环境准备

iOS 13.0及更高。

步骤一:开通服务

在使用 TUIRoomKit 发起会议前,您需要开通 TUIRoomKit 专属的多人音视频互动服务,详细步骤如下:1. 登录 实时音视频 TRTC 控制台,单击左侧应用管理页面,找到需要开通 TUIRoomKit 的应用(SDKAppID),点击详情按钮,进入应用概览界面。
2. 在应用概览页面找到 含 UI 低代码集成接入 卡片,选择 多人音视频(TUIRoomKit),点击领取体验按钮,领取7天体验版 TUIRoomKit 进行接入测试。注意:领取体验版后仅开通 TUIRoomKit 7天的体验资格,测试过程中所产生的音视频时长等资源消耗,仍会按照实时音视频 TRTC 标准计费规则计费;新账号首次可前往 试用中心 免费领取10000分钟音视频时长;如果所选 SDKAppID 体验版领取次数已达上限,需要购买 TUIRoomKit 包月套餐才能开通服务,请点击场景套餐订阅按钮或前往 购买页 购买;

3. 领取完成后,可以看到体验版的基本信息,包括服务状态、版本信息和功能详情、到期时间。
4. 单击集成指南按钮,即可参照集成指南开始集成。至此 TUIRoomKit 服务开通完成。

步骤二:集成 TUIRoomKit 组件

使用 CocoaPods 导入组件,具体步骤如下:1. 在您的 Podfile 文件中添加以下依赖。

pod 'TUIRoomKit'

2.执行以下命令,安装组件。

pod install

如果无法安装 TUIRoomKit 指定版本,执行以下命令更新本地的 CocoaPods 仓库列表。

pod repo update

步骤三:完成工程配置

使用音视频功能,需要授权麦克风和摄像头的使用权限。在 App 的 Info.plist 中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。

NSCameraUsageDescriptionTUIRoom需要访问您的相机权限NSMicrophoneUsageDescriptionTUIRoom需要访问您的麦克风权限NSPhotoLibraryUsageDescriptionTUIRoom需要访问您的相册



步骤四:登录TUI 组件

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

import TUICore// 组件登录TUILogin.login(1400000001,                        // 请替换为步骤一取到的 SDKAppID            userID: "xxxxxxxxxx",                 // 请替换为您的 UserID           userSig: "998") {                     // 您可以在控制台中计算一个 UserSig 并填在这个位置    print("login success")} fail: { (code, message) in    print("login failed, code: \(code), error: \(message ?? "nil")")}

参数说明
这里详细介绍一下 login 函数中所需要用到的几个关键参数:SDKAppID:在步骤一中的应用概览页面中您已经获取到,这里不再赘述。UserID:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。UserSig:使用步骤一获取的 SecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台中的 辅助工具 生成一个临时可用的 UserSig。更多信息请参见 如何计算及使用 UserSig。注意:这个步骤也是目前我们收到的开发者反馈最多的步骤,常见问题如下:SDKAppID 设置错误,国内站的 SDKAppID 一般是以140开头的10位整数。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.createInstance().setSelfInfo(userName: "xx", avatarURL: "xx") {    print("setSelfInfo success")} onError: { code, message in    print("setSelfInfo error, code:\(code), message:\(message)")}
参数 类型 含义
userName String 用户名
avatarURL String 用户头像 URL
onSuccess TUISuccessBlock 成功回调
onError TUIErrorBlock 失败回调

创建房间

通过调用 TUIRoomKit 的 createRoom 函数就可以创建房间。

let roomInfo = TUIRoomInfo()roomInfo.roomId = "998"                    // 请设置为您需要的房间号roomInfo.name = "xx";                      // 请设置为您需要的房间名称roomInfo.speechMode = .freeToSpeak         // 请设置为您需要的房间麦控模式roomInfo.roomType = .conference            // 请设置为您需要的房间类型TUIRoomKit.createInstance().createRoom(roomInfo: roomInfo) {    print("createRoom success")} onError: { code, message in    print("createRoom error, code:\(code), message:\(message)")}
参数 类型 含义
roomInfo TUIRoomInfo 房间信息
roomInfo.roomId String 房间字符串
roomInfo.name String 房间名称
roomInfo.speechMode TUISpeechMode 麦控模式(自由发言模式、申请发言模式、上麦发言模式)
roomInfo.roomType TUIRoomType 房间类型(会议类型房间、直播类型房间)
onSuccess TUISuccessBlock 成功回调
onError TUIErrorBlock 失败回调

说明:只调用创建房间接口不会自动进入房间,收到回调后还需要调用进入房间接口。

进入房间

通过调用 TUIRoomKit 的 enterRoom 函数并指定房间号,就可以进入指定房间。

TUIRoomKit.createInstance().enterRoom(roomId: "998",        // 请设置为您要进入的房间号                                 enableAudio: true,         // 请按照您的业务需求设置                                 enableVideo: true,         // 请按照您的业务需求设置                            isSoundOnSpeaker: true) {       // 请按照您的业务需求设置    print("enterRoom success")} onError: { code, message in    print("enterRoom error, code:\(code), message:\(message)")}
参数 类型 含义
roomId String 房间号
enableAudio Bool 入会是否开启音频
enableVideo Bool 入会是否开启视频
isSoundOnSpeaker Bool 入会是否开启扬声器
onSuccess TUISuccessBlock 成功回调
onError TUIErrorBlock 失败回调

步骤六:更多特性

UI 挂件接入

使用 CocoaPods 导入聊天挂件,具体步骤如下:1. 在您的 Podfile 文件中添加以下依赖。

pod 'TUIChat'          # [可选] 聊天挂件

2.执行以下命令,安装组件。

pod install

常见问题

如果您选择同时集成 RoomKit 与 CallKit, 可以参考以下集成方式,后续我们会尽快优化多组件之间的集成方式。

# CallKitpod 'TUICallKit', '~> 1.9.0.680' # 同时集成RoomKit与CallKit,推荐TUICallKit 1.9.0.680及以上版本  # RoomKitpod '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'

交流与反馈

如果您在使用过程中,有什么建议或者意见,欢迎您加入我们的 TUIRoomKit 技术交流 QQ 群:770645461,进行技术交流和产品沟通。

对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?