初始化&登录SDK

公有云服务器版本使用方法

注意: 该页面的初始化流程仅适用于公有云服务,使用私有部署服务的初始化参见:
https://docs.starrtc.com/zh-cn/docs/android-3b.html

3.1 获取APPID

appID 请在StarRTC官网注册获取

3.2 设置初始化参数 & 初始化SDK

用XHCustomConfig初始化SDK,customConfig.init之前设置服务地址及账号信息,之后可设置音视频相关配置。

XHCustomConfig customConfig = XHCustomConfig.getInstance();
//设置AppID
customConfig.setAppId(MLOC.agentId);
//设置服务地址
customConfig.setLoginServerUrl(MLOC.STAR_LOGIN_URL);
customConfig.setChatroomScheduleUrl(MLOC.CHAT_ROOM_SCHEDULE_URL);
customConfig.setLiveSrcScheduleUrl(MLOC.LIVE_SRC_SCHEDULE_URL);
customConfig.setLiveVdnScheduleUrl(MLOC.LIVE_VDN_SCHEDULE_URL);
customConfig.setImScheduleUrl(MLOC.IM_SCHEDULE_URL);
customConfig.setVoipServerUrl(MLOC.VOIP_SERVER_URL);
//初始化SDK
customConfig.initSDK(this, MLOC.userId, new IXHErrorCallback() {
@Override
public void error(final String errMsg, Object data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
MLOC.showMsg(errMsg);
}
});
}
},new Handler());
//设置输出视频的分辨率;
customConfig.setDefConfigVideoSize(XHConstants.XHCropTypeEnum.STAR_VIDEO_CONFIG_360BW_640BH_180SW_320SH);
//设置输出视频的帧率,码率(单位Kb);
customConfig.setDefConfiBigVideoConfig(15,500);

3.3 获取authKey

authKey是每一位用户的身份授权标识,可以向您的服务器请求获取。

服务器生成authKey方法:目前需要您的服务器向星盒服务器发送请求来获取authKey,具体如下:

请求接口: https://api.starRTC.com/aec/authKey
参数:
appid: 您注册时会自动生成,请登录官网查看
secret:
userid(用户唯一标识)
返回 :失败 {status:0, data:“errorMsg”}
成功 {status:1, data:“authKey”}

3.4 登录/退出SDK

获取XHLgoinManager类实例并添加IXHLoginManagerListener监听;
调用XHLoginManager的login和loginPublic两个方法登录SDK;
login方法需要传鉴权码,用来验证用户权限。
loginPublic方法不需要鉴权码,用户权限不做限制(不需要3.3获取authKey)。
注意:同一个app体系内,只允许选择其中一种登录方式,不能一部分用login,一部分用longinPublic。

示例:

XHLoginManager loginManager = XHClient.getInstance().getLoginManager();
loginManager.addListener(new IXHLoginManagerListener() {
@Override
public void onConnectionStateChanged(XHConstants.XHSDKConnectionState state) {
//服务器的连接状态改变的通知
}

@Override
public void onKickedByOtherDeviceLogin() {
//用户被挤下线的通知
}

@Override
public void onLogout() {
//成功退出登录的通知
}
});

//登录SDK 需要验证用户权限
loginManager.login(authKey, new IXHResultCallback() {
@Override
public void success(Object data) {
//登录成功
}

@Override
public void failed(String errMsg) {
//登录失败
}
});

//登录SDK 不需要验证用户权限
loginManager.loginPublic(new IXHResultCallback() {
@Override
public void success(Object data) {
//登录成功
}

@Override
public void failed(String errMsg) {
//登录失败
}
});

//退出SDK
loginManager.logout();