快速集成 SDK
准备
将 CloudHubRTS.framework 文件添加到工程中
配置工程文件
将 CloudHubRTS.framework 加入工程
修改 CloudHubRTS.framework 的引用设置,General–>Frameworks, Libraries, and Embedded Content
工程配置修改(Build Settings) Build Options->Enable Bitcode->修改为NO
添加依赖库 Build Phases->Link Binary With Libaries 添加必要依赖库: libc++.tbd
添加设备权限
CloudHubRTS 会使用 iOS 设备的麦克风和摄像头,因此需要在工程的 info.plist 文件中添加权限申请
- Privacy - Camera Usage Description (摄像头权限)
- Privacy - Microphone Usage Description (麦克风权限)
集成步骤——推流
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];