CloudHub 文档中心
下载中心 文档中心

RTS 实时流直播


快速集成 SDK

准备

将 CloudHubRTS.framework 文件添加到工程中

配置工程文件

  1. 将 CloudHubRTS.framework 加入工程

  2. 修改 CloudHubRTS.framework 的引用设置,General–>Frameworks, Libraries, and Embedded Content image

  3. 工程配置修改(Build Settings) Build Options->Enable Bitcode->修改为NO image

  4. 添加依赖库 Build Phases->Link Binary With Libaries 添加必要依赖库: libc++.tbd image

添加设备权限

CloudHubRTS 会使用 iOS 设备的麦克风和摄像头,因此需要在工程的 info.plist 文件中添加权限申请

集成步骤——推流

1. 创建推流器

在调用其他 API 前,需要创建并初始化 RtsUpStream 对象。

初始化 RtsUpStream 时需要提供一个回调事件处理器,关于事件的具体信息,请参考 概览

// ViewController.h

// 导入 CloudHubRTS 类
#import <CloudHubRTS/CloudHubRTS.h>

// 声明 RtsUpStreamDelegate,用于监听回调
@interface ViewController : UIViewController <RtsUpStreamDelegate>
// 定义 RtsUpStream 变量
@property (nonatomic, strong) RtsUpStream *pushStream;

2. 初始化 RtsUpStream 对象,并设置代理

调用 createUpStreamWithClientId:delegate: 创建并初始化 RtsUpStream 对象。

self.pushStream = [RtsEngine createUpStreamWithClientId:nil delegate:self];

3. 设置音视频设备

[self.pushStream startCamera];
[self.pushStream startMicrophone];

4. 本地预览

观看自己的视频:

[self.pushStream startPlayingLocalVideo:<#Your View#> renderMode:CloudHubVideoRenderModeHidden mirrorMode:CloudHubVideoMirrorModeAuto];

5. 开始推流

NSString *url = <#your url#>;
int pushResult = [self.pushStream startPush:url];
if (pushResult)
{
    NSLog(@"Error! startPush failed pushResult=%d", pushResult);
}

6. 结束推流

根据业务需求,调用 stopPush 结束推流,然后释放推流器。

[self.pushStream stopPush];
[RtsEngine deleteUpStream:self.pushStream];

集成步骤——拉流

1. 创建拉流器

在调用其他 API 前,需要创建 RtsDownStream 对象。

初始化 RtsDownStream 时需要提供一个回调事件处理器,关于事件的具体信息,请参考 概览

// ViewController.h

// 导入 CloudHubRTS 类
#import <CloudHubRTS/CloudHubRTS.h>

// 声明 RtsDownStreamDelegate,用于监听回调
@interface ViewController : UIViewController <RtsDownStreamDelegate>
// 定义 RtsUpStream 变量
@property (nonatomic, strong) RtsDownStream *pullStream;

2. 初始化 RtsDownStream 对象,并设置代理

调用 createDownStreamWithClientId:delegate: 创建并初始化 RtsDownStream 对象。

self.pullStream = [RtsEngine createDownStreamWithClientId:nil delegate:self];

3. 开始拉流

NSString *url = <#your url#>;
int pullResult = [self.pullStream startPull:url];
if (pullResult)
{
    NSLog(@"Error! startPull failed pullResult=%d", pullResult);
}

4. 结束拉流

根据业务需求,调用 stopPull 结束拉流,然后释放拉流器。

[self.pullStream stopPull];
[RtsEngine deleteDownStream:self.pullStream];