tencent cloud

文档反馈

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

    环境准备

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

    步骤一:开通服务

    在使用 TUIRoomKit 发起会议前,您需要前往控制台开通 TUIRoomKit 专属的多人音视频互动服务,具体步骤请参见 开通服务

    步骤二:导入TUIRoomKit组件

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

    步骤三:工程配置

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

    步骤四:组件登录

    在您的项目中添加如下代码,它的作用是通过调用TUICore 中的相关接口完成TUI组件的初始化。这个步骤非常关键,因为只有在登录成功后才能正常使用 TUIRoomKit 的各项功能,故请您耐心检查相关参数是否配置正确:
    Swift
    OC
    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")")
    }
    #import "TUICore/TUILogin.h"
    
    [TUILogin login:1400000001 // 请替换为步骤一取到的 SDKAppID
    userID:@"998" // 请替换为您的 UserID
    userSig:@"xxxxxxxxxx" succ:^{ // 您可以在控制台中计算一个 UserSig 并填在这个位置
    NSLog(@"login,success");
    } fail:^(int code, NSString * _Nullable msg) {
    NSLog(@"login,failed,code:%d,msg:%@",code,msg);
    }];
    参数说明 这里详细介绍一下 login 函数中所需要用到的几个关键参数:
    SDKAppID:在开通服务中您已经获取到,这里不再赘述。
    UserID:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。
    UserSig:使用 开通服务 获取的 SDKSecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台左侧项目栏中的 UserSig 工具,创建一个临时可用的 UserSig。
    
    
    
    更多信息请参见 UserSig 相关

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

    会议主界面为ConferenceMainViewController,只需调用 quickStartConference 发起快速会议,并在onConferenceStarted回调中跳转到会议主界面,即可发起快速会议。
    Swift
    OC
    import TUIRoomKit
    
    // CreateConferenceViewController 为您自己的 ViewController
    class CreateConferenceViewController: UIViewController {
    private var conferenceViewController: ConferenceMainViewController?
    func quickStartConferenceAction() {
    conferenceViewController = ConferenceMainViewController()
    let params = ConferenceParams() //params的设置是可选的,包括麦克风和摄像头等状态
    params.isMuteMicrophone = false
    params.isOpenCamera = false
    conferenceViewController?.setConferenceParams(params: params)
    conferenceViewController?.setConferenceObserver(observer: self)
    conferenceViewController?.quickStartConference(conferenceId: "123456") //conferenceId为会议号
    }
    }
    extension CreateConferenceViewController: ConferenceObserver {
    func onConferenceStarted(conferenceId: String, error: ConferenceError) {
    if error == .success, let vc = conferenceViewController {
    navigationController?.pushViewController(vc, animated: true)
    }
    conferenceViewController = nil
    }
    }
    // CreateConferenceViewController 为您自己的 ViewController
    @interface CreateConferenceViewController ()<ConferenceObserver>
    @property(strong, nonatomic) ConferenceMainViewController * conferenceController;
    @end
    
    @implementation CreateConferenceViewController
    
    - (void)quickStartConferenceAction {
    _conferenceController = [[ConferenceMainViewController alloc]init];
    ConferenceParams * params = [[ConferenceParams alloc]init]; //params的设置是可选的,包括麦克风和摄像头等状态
    params.isMuteMicrophone = false;
    params.isOpenCamera = false;
    [_conferenceController setConferenceParamsWithParams:params];
    [_conferenceController setConferenceObserverWithObserver:self];
    [_conferenceController quickStartConferenceWithConferenceId:@"123456"]; //conferenceId为会议号
    }
    
    - (void)onConferenceStartedWithConferenceId:(NSString *)conferenceId error:(enum ConferenceError)error {
    if (error == ConferenceErrorSuccess) {
    [self.navigationController pushViewController:_conferenceController animated:true];
    }
    _conferenceController = nil;
    }
    @end

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

    会议主界面为ConferenceMainViewController,只需调用 joinConference 加入会议,并在onConferenceJoined回调中跳转到会议主界面,即可参与当前会议。
    Swift
    OC
    import TUIRoomKit
    
    // EnterConferenceViewController 为您自己的 ViewController
    class EnterConferenceViewController: UIViewController {
    private var conferenceViewController: ConferenceMainViewController?
    private func joinConferenceAction() {
    conferenceViewController = ConferenceMainViewController()
    let params = ConferenceParams() //params的设置是可选的,包括麦克风和摄像头的状态
    params.isMuteMicrophone = false
    params.isOpenCamera = false
    conferenceViewController?.setConferenceParams(params: params)
    conferenceViewController?.setConferenceObserver(observer: self)
    conferenceViewController?.joinConference(conferenceId: "123456") //conferenceId为会议号
    }
    }
    extension EnterConferenceViewController: ConferenceObserver {
    func onConferenceJoined(conferenceId: String, error: ConferenceError) {
    if error == .success, let vc = conferenceViewController {
    navigationController?.pushViewController(vc, animated: true)
    }
    conferenceViewController = nil
    }
    }
    // EnterConferenceViewController 为您自己的 ViewController
    @interface EnterConferenceViewController ()<ConferenceObserver>
    @property(strong, nonatomic) ConferenceMainViewController * conferenceController;
    @end
    
    @implementation EnterConferenceViewController
    
    - (void)joinConferenceAction {
    _conferenceController = [[ConferenceMainViewController alloc]init];
    ConferenceParams * params = [[ConferenceParams alloc]init]; //params的设置是可选的,包括麦克风和摄像头的状态
    params.isMuteMicrophone = false;
    params.isOpenCamera = false;
    [_conferenceController setConferenceParamsWithParams:params];
    [_conferenceController setConferenceObserverWithObserver:self];
    [_conferenceController joinConferenceWithConferenceId:@"123456"]; //conferenceId为会议号
    }
    
    - (void) onConferenceJoinedWithConferenceId:(NSString *)conferenceId error:(enum ConferenceError)error {
    if (error == ConferenceErrorSuccess) {
    [self.navigationController pushViewController:_conferenceController animated:true];
    }
    _conferenceController = nil;
    }
    说明:当使用OC进行接入时,需要在桥接文件中导入TUIRoomKit。
    #import <TUIRoomKit/TUIRoomKit-Swift.h>
    
    
    
    会议主界面
    
    
    
    用户列表

    常见问题

    如果在使用TUIRoomKit时遇见了问题,可以先行查看 常见问题 文档。

    交流与反馈

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

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

    技术支持

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

    7x24 电话支持