百家云 iOS SDK 使用 brtc 对象来管理一个本地用户在房间内的行为,在进入房间之前需要先创建并初始化一个 brtc 对象。
相关函数接口在 ios-sdk 2.8.20 及以上版本支持
调用 BRTC.sharedInstance 即可创建 BRTC 实例对象。 请确保在调用其他 API 前先调用该方法创建并初始化。
self.brtc = [BRTC sharedInstance]; self.brtc.delegate = self;
通过设置事件回调接口 BRTCDelegate ,您可以监听 SDK 在运行期间所发生的错误信息、警告信息、以及各种音视频事件,根据这些回调决定业务的后续动作。
@interface BRTCVideoForMultipleUsersViewController () <BRTCDelegate> @end @implementation BRTCVideoForMultipleUsersViewController - (void)createEngine { self.brtc = [BRTC sharedInstance]; self.brtc.delegate = self; NSLog(@"🚀创建实例"); } #pragma mark - 质量监测 - (void)onStatistics:(BRTCStatistics *)statistics { //添加推拉流质量数据处理逻辑 } - (void)onExitRoom:(NSInteger)reason { //添加本用户退出房间处理逻辑 } - (void)onEnterRoom:(NSInteger)result { //添加本用户进入房间处理逻辑 } #pragma -mark - 远端用户回调函数 - (void)onRemoteUserEnterRoom:(NSString *)userId { //添加远端用户加入房间处理逻辑 } - (void)onRemoteUserLeaveRoom:(NSString *)userId reason:(NSInteger)reason { //添加远端用户退出房间处理逻辑 } #pragma -mark - 远端用户发布/取消发布音视频回调函数 - (void)onUserAudioAvailable:(NSString *)userId available:(BOOL)available { //添加远端用户发布/取消音频回调处理逻辑 } - (void)onUserVideoAvailable:(NSString *)userId available:(BOOL)available { //添加远端用户发布/取消视频回调处理逻辑 } - (void)onUserSubStreamAvailable:(NSString *)userId available:(BOOL)available { //添加远端用户发布/取消屏幕共享回调处理逻辑 } - (void)onError:(int)errCode errMsg:(nullable NSString *)errMsg extInfo:(nullable NSDictionary*)extInfo { NSString *str = [NSString stringWithFormat:@"!!!: brtc错误回调: errMsg: %@, errCode: %d", errMsg, errCode]; [self appendLog:str]; } // ... 其他回调函数实现 @end
在调用 enterRoom 接口时需要填写输入关键参数 BRTCParams
准备好参数后,就可以调用 enterRoom 接口函数进入房间了
self.brtc = [BRTC sharedInstance]; self.brtc.delegate = self; BRTCParams *params = [BRTCParams new]; params.appID = appID; params.sign = sig; params.roomID = roomId; params.role = BRTCRoleAnchor; params.userID = userId; //进入房间 [self.brtc enterRoom:params];
进入房间事件回调
@interface BRTCVideoForMultipleUsersViewController () <BRTCDelegate> @end @implementation BRTCVideoForMultipleUsersViewController - (void)createEngine { self.brtc = [BRTC sharedInstance]; self.brtc.delegate = self; NSLog(@"🚀创建实例"); BRTCParams *params = [BRTCParams new]; params.appID = appID; params.sign = sig; params.roomID = tempRoomID; params.userID = userId; [self.brtc enterRoom:params]; } - (void)onEnterRoom:(NSInteger)result { if (result > 0) { [self appendLog:@"🚩 🚪 Login room success, spend %d ms", result]; [self appendLog:@"开始推流"]; [self.brtc startLocalPreview:YES view:self.localVideoView]; [self.brtc muteLocalVideo:NO]; [self.brtc startLocalAudio:BRTCAudioQualityDefault]; [self.brtc muteLocalAudio:NO]; } else { [self appendLog:@"🚩 ❌ 🚪 Login room fail"]; } } // ... 其他回调函数实现 @end
调用 exitRoom 接口即可退出当前的房间,SDK 会在退房结束后通过 onExitRoom 回调事件通知您。
//调用接口主动退出房间 [self.brtc exitRoom]; - (void)onExitRoom:(NSInteger)reason { if (reason == 0) { NSLog(@"退出房间成功"); } else if (reason == 1) { NSLog(@"被服务器踢出当前房间"); } else if (reason == 2) { NSLog(@"当前房间被解散"); } }
加入和离开房间
百家云 iOS SDK 使用 brtc 对象来管理一个本地用户在房间内的行为,在进入房间之前需要先创建并初始化一个 brtc 对象。
相关函数接口在 ios-sdk 2.8.20 及以上版本支持
创建BRTC实例对象
调用 BRTC.sharedInstance 即可创建 BRTC 实例对象。 请确保在调用其他 API 前先调用该方法创建并初始化。
监听 SDK 的事件
通过设置事件回调接口 BRTCDelegate ,您可以监听 SDK 在运行期间所发生的错误信息、警告信息、以及各种音视频事件,根据这些回调决定业务的后续动作。
进房间参数
在调用 enterRoom 接口时需要填写输入关键参数 BRTCParams
进入房间
准备好参数后,就可以调用 enterRoom 接口函数进入房间了
进入房间事件回调
退出房间
调用 exitRoom 接口即可退出当前的房间,SDK 会在退房结束后通过 onExitRoom 回调事件通知您。