登录房间
初始化SDK之后,必须先登录房间,才能进行后面的推流播流。
步骤
因为以下接口方法调用一般是基于视频UI操作进行的,所以调用以下方法前,需要您已经创建了自己的视频展示界面的类了,比如下图样式的多人视频的UI,Demo中的UI仅提供演示。
1 登录房间
调用方法 - (int)loginRoom:(NSString )roomId userId:(NSString )userId role:(ChuangUserRole)userRole 实现登录房间。
// Objective-C
/*!
@brief 登录房间,初始化后需要先登录房间,登录成功后才可以推流或播放
@param roomId 要登录的房间号
@param userId 当前用户的 userId
@param userRole 用户的角色
@return 返回 0 表示成功发送登录请求,其他值均为发送失败
*/
int result = [self.liveEngine loginRoom:roomId userId:userId role:userRole];
方法参数说明:
参数 | 类型 | 是否必传 | 描述 |
---|---|---|---|
roomId | NSString | 必传 | APP内房间唯一标识,支持数字、字母、下划线,最大不超过256个字符 |
userId | NSString | 必传 | APP内用户唯一标识,避免出现重复,支持数字、字母、下划线, |
userRole | ChuangUserRole | 必传 | 用户的角色,详情参照ChuangUserRole |
2 退出房间
用户退出房间时调用方法 logoutRoom
// Objective-C
/*!
@brief 退出房间
*/
[self.liveEngine logoutRoom];
3 实现回调代理方法
实现代理方法的类需要遵守协议 ChuangLiveEngineDelegate。
3.1 房间状态变化回调
本用户调用登录房间、退出房间方法后,都会触发ChuangLiveEngineDelegate 中的该回调方法,在方法内根据业务需要处理流操作。此外,当网络出现异常或者用户被封禁时,也会触发该网络状态变化回调方法。房间状态state详情参照ChuangRoomState描述。errorCode为0表示用户正常调用返回,非0表示其他原因引起状态变化,错误码详情参照iOS错误码。
注意:
只有房间连接状态成功(state为ChuangRoomStateConnected )才能推流或者播流、混流等操作。
// Objective-C
/*!
@brief 房间状态变化
@param roomId 房间ID
@param state 房间状态
@param errorCode 异常码
*/
- (void)onRoomStateUpdate:(NSString *)roomId state:(ChuangRoomState)state errorCode:(int)errorCode{
//此处,根据返回state errorCode,实现推流/播流或异常处理代码;
}