连接状态管理 编辑文档

功能描述

该章描述加入房间相关的状态变化。

接口描述

public interface ChannelObserver {
/**
* 自己加入成功,实现加入频道成功的逻辑
* @param roomName 频道名字
* @param uid 用户id。如果用户加入频道前没有设置id,这位服务器自动分配的id
* @param role 加入频道的角色。TALKER表示主播,可说可听;AUDIENCE表示听众,只能听不能说
* @param muted 加入频道的静音状态。0表示未静音,1表示静音
* @param isReconnect 是否是断线重连加入
*/
void onJoinSuccess(String roomName, long uid, ChannelRole role, boolean muted);

/**
* 断线重连加入成功,实现断线重连加入频道成功的逻辑
* @param roomName 频道名字
* @param uid 用户id。如果用户加入频道前没有设置id,这位服务器自动分配的id
* @param role 加入频道的角色。TALKER表示主播,可说可听;AUDIENCE表示听众,只能听不能说
* @param muted 加入频道的静音状态。0表示未静音,1表示静音
*/
void onReJoinSuccess(String roomName, long uid, ChannelRole role, boolean muted);

/**
* 自己加入失败,实现加入频道失败的逻辑
* @param code 失败状态
* @param message 失败信息
*/
void onJoinFail(int code, String message);

/**
* 网络打断,比如WIFI关闭,数据/WIFI切换等,信号不好连接中断等。
*/
void onConnectionBreak();

/**
* 超过10秒与QttAudio服务器不通,回调该通知
*/
void onConnectionLost();

/**
* 运行过程中的错误信息,SDK无法自行恢复。一般情况下应用需要提示用户并进行对应的处理。收到错误消息,一般需要用户调用leave和join,重进进入房间作为尝试。
* @param err 错误码
* @param message 错误描述
*/
void onError(int err, String message);

/**
* 运行过程中的警告信息,通常是网络或者音频设备相关的。一般情况下应用可以忽略,SDK会自己尝试恢复。
* @param warn 警告码
* @param message 警告描述
*/
void onWarning(int warn, String message);
/**
* 调用leave()后,退出房间成功回调该通知
*/
void onLeave();
}

示例代码

ChannelObserver channelObserver = new ChannelObserver() {
@Override
public void onJoinSuccess(String roomName, long uid, ChannelRole role, boolean muted) {
Log.d("qtt_rtc", "加入频道成功 roomId:" + roomName + " uid:" + uid + " role:" + role + " ");
}

@Override
public void onReJoinSuccess(String roomName, long uid, ChannelRole role, boolean muted) {
Log.d("qtt_rtc", "加入频道成功 roomId:" + roomName + " uid:" + uid + " role:" + role + " ");
}

@Override
public void onJoinFail(final int code, final String message) {
Log.d("qtt_rtc", "加入频道失败 " + message);
}

@Override
public void onConnectionBreak() {
Log.d("qtt_rtc", "连接中断");
}

@Override
public void onConnectionLost() {
Log.d("qtt_rtc", "连接丢失");
}

@Override
public void onLeave() {
Log.d("qtt_rtc", "退出房间成功");
}

@Override
public void onError(int err, String message) {
Log.d("qtt_rtc", "错误消息 " + err + " msg: " + message);
}

@Override
public void onWarning(int warn, String message) {
Log.d("qtt_rtc", "警告消息 " + err + " msg: " + message);
}
};

ChannelEngine channelEngine = ChannelEngine.GetChannelInstance(getApplicationContext(),"your appkey",channelObserver);
野狗新手?
立即注册,为你提供安全可靠的实时通信云服务。
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题