主播端
准备发布
-
主播端需要先初始化 SDK 并连接融云服务器。
Objective C[[RCCoreClient sharedCoreClient] initWithAppKey:@"你的AppKey"];
[[RCCoreClient sharedCoreClient] connectWithToken:@"你的token"
dbOpened:nil
success:^(NSString *userId) {
NSLog(@"IM connect success,user ID : %@",userId);
...
} error:^(RCConnectErrorCode errorCode) {
NSLog(@"IM connect failed, error code : %ld",(long)errorCode);
}]; -
(可选)主播可以先将音频输出切换到扬声器。详见音频路由。
Objective C// 1.设置切换听筒为扬声器
[[RCRTCEngine sharedInstance] enableSpeaker:YES]; -
主播端需要配置房间信息并加入房间。
Objective C// 配置房间
RCRTCRoomConfig *config = [[RCRTCRoomConfig alloc] init];
config.roomType = RCRTCRoomTypeLive;
config.liveType = RCRTCLiveTypeAudioVideo;
config.roleType = RCRTCLiveRoleTypeBroadcaster;
[[RCRTCEngine sharedInstance] joinRoom:@"你的房间号"
config:config
completion:^(RCRTCRoom * _Nullable room, RCRTCCode code) {
if (code != RCRTCCodeSuccess) {
}
// 可以通过实现 <RCRTCRoomEventDelegate> 的方法来监听房间相关事件回调
room.delegate = self;
}]; -
主播端创建本地视频渲染的 view。
Objective C// 1.初始化本地渲染视图
RCRTCVideoView *view = [[RCRTCVideoView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
// 2.设置视频流的渲染视图
[[RCRTCEngine sharedInstance].defaultVideoStream setVideoView:view];
// 3.添加渲染视图
[self.view addSubview:view]; -
开始摄像头采集。
Objective C[[RCRTCEngine sharedInstance].defaultVideoStream startCapture];
发布资源
提示
发布资源前,请确定已经以主播身份加入房间、开启摄像头采集以及设置完视频流的渲染视图并添加在本地视图上以供显示。
发布默认音视频流
当 RCRTCRoomType 为 RCRTCRoomTypeLive
时,主播在配置完房间并加入后可以发布默认音视频流。此接口仅直播模式的主播可用。
接口原型
Objective C
- (void)publishDefaultLiveStreams:(nullable RCRTCLiveOperationCallback)completion;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
completion | RCRTCLiveOperationCallback | 否 | 发布完成回调 |
代码示例
Objective C
[[RCRTCEngine sharedInstance].room.localUser publishDefaultLiveStreams:^(BOOL isSuccess, RCRTCCode desc, RCRTCLiveInfo * _Nullable liveInfo) {
// 可以通过拿到的liveInfo对象进行推流相关配置
}];
发布指定音视频流
如果主播想要单独发布默认音频流,视频流或者自定义视频流时,可以使用另外一个发布接口。此接口仅直播模式的主播可用。详情可跳转视频流相关-发布自定义流中查看。
接口原型
Objective C
- (void)publishLiveStream:(nonnull RCRTCOutputStream *)stream
completion:(nullable RCRTCLiveOperationCallback)completion;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
stream | RCRTCOutputStream | 是 | 发布的音视频流 |
completion | RCRTCLiveOperationCallback | 否 | 发布完成回调 |
代码示例
Objective C
// 发布自定义视频流
[[RCRTCEngine sharedInstance].room.localUser publishLiveStream:fileVideoOutputStream
completion:^(BOOL isSuccess, RCRTCCode code, RCRTCLiveInfo * _Nullable liveInfo) {
if (code == RCRTCCodeSuccess) {
// 发布成功
}
}];