跳转至

快速集成

融云 iOS 音视频服务 SDK 可以使用 CocoaPod 的方式进行集成(推荐使用),也可以在融云官网下载实时音视频库进行集成,

  1. 集成 RongRTCLib 时只需要导入 RongRTCLib 和 RongIMLib 库
  2. 集成 CallKit 和 CallLib 需要导入 RongIMKit、RongIMLib、RongRTCLib 等库文件

iOS 版本支持

iOS 需要 8.0 以上版本操作系统。

CocoaPod 集成

pod 'RongRTCLib', '~> 3.0.0'

手动导入

  1. 导入 RongRTCLib.framework、RongIMLib.framework、libopencore-amrnb.a (该库包含在 IMLib 软件包中)
  2. 添加以下系统依赖库

    • 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

融云在 GitHub 上提供了 快速集成 Demo 代码示例,方便开发者参考。