跳转至

快速集成

有两种方式可以将 SDK 导入您的项目中:

  • 通过 CocoaPods 管理依赖 (推荐使用)
  • 手动导入 SDK 并管理依赖

CocoaPod 集成

pod 'RongRTCLib', '~> 3.1.1'

然后在终端中运行以下命令:

 pod install

完成后,CocoaPods 会在您的工程根目录下生成一个 .xcworkspace 文件。您需要通过此文件打开您的工程,而不是之前的 .xcodeproj。

说明

  1. pod install 执行完成后,会自动导入对应版本的 IMLib

  2. 如果没有特殊要求,建议开发者使用最新版本的 SDK 。如果无法安装 SDK 最新版本,运行以下命令更新本地的 CocoaPods 仓库列表

pod repo update

手动导入

  1. 在融云官网下载实时音视频库进行集成
  2. 导入 RongRTCLib.framework、RongIMLib.framework、libopencore-amrnb.a (该库包含在 IMLib 软件包中)
  3. 添加以下系统依赖库

    • AssetsLibrary
    • VideoToolBox
    • GLKit
    • MapKit
    • ImageIO
    • CoreLocation
    • SystemConfiguration
    • QuartzCore
    • OpenGLES
    • CoreVideo
    • CoreTelephony
    • CoreMedia
    • CoreAudio
    • CFNetwork
    • AudioToolbox
    • AVFoundation
    • UIKit
    • CoreGraphics
    • c++.tbd
    • z.tbd
    • sqlite3.tbd
    • bz2.tbd

快速集成示例

快速集成流程

加入房间

设置本地预览视图,发布资源

订阅远端用户音视频资源,设置远端预览视图

离开房间

代码示例:


- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    // AppKey 设置
    //    [[RCIMClient sharedRCIMClient] initWithAppKey:@"XXXXXXX"];
    //    连接 IM
    //[[RCIMClient sharedRCIMClient] connectWithToken:@"tokeen"
    //                            success:^(NSString *userId) {}
    //                            error:^(RCConnectErrorCode status){}
    //                            tokenIncorrect:^{ }];

    // 设置采集参数
    [[RongRTCAVCapturer sharedInstance] setCaptureParam:[RongRTCVideoCaptureParam defaultParameters]];
    RongRTCLocalVideoView * localView = [[RongRTCLocalVideoView alloc]initWithFrame:self.view.bounds];
    [self.view addSubview:localView];
    // 设置本地预览视图
    [[RongRTCAVCapturer sharedInstance] setVideoRender:localView];
    [[RongRTCAVCapturer sharedInstance] startCapture];
    // 加入房间
    [[RongRTCEngine sharedEngine] joinRoom:@"HelloRTC" completion:^(RongRTCRoom * _Nullable room, RongRTCCode code) {
        room.delegate = self;
        self.room = room;
        // 发布资源
        [room.localUser publishDefaultAVStream:^(BOOL isSuccess, RongRTCCode desc) {

        }];
    }];
}

// 监听发布资源消息
-(void)didPublishStreams:(NSArray<RongRTCAVInputStream *> *)streams{
    // 订阅资源
    [self.room.remoteUsers.firstObject subscribeAVStream:streams tinyStreams:nil completion:^(BOOL isSuccess, RongRTCCode desc) {

    }];
    // 设置远端渲染视图
    for (RongRTCAVInputStream * stream in streams) {
        if (stream.streamType == RTCMediaTypeVideo) {
            RongRTCRemoteVideoView * videoView = [[RongRTCRemoteVideoView alloc]initWithFrame:CGRectMake(100, 250, 100, 100)];
            [stream setVideoRender:videoView];
        }
    }
}

集成 Demo 示例

快速集成 Demo: https://github.com/rongcloud/RTC-Quick-Start-iOS