超级对讲机

9.1 获取XHSuperRoomManager实例,添加事件监听

XHSuperRoomManager superRoomManager = XHClient.getInstance().getSuperRoomManager(this);
superRoomManager.addListener(new IXHSuperRoomManagerListener() {
@Override
public void onActorJoined(String liveID, String actorID) {
//发言者加入
}

@Override
public void onActorLeft(String liveID, String actorID) {
//发言者离开
}

@Override
public void onSuperRoomError(String liveID, String error) {
//报错
}

@Override
public void onMembersUpdated(int membersNumber) {
//参与人数变化
}

@Override
public void onSelfKicked() {
//自己被踢出
}

@Override
public void onSelfMuted(int seconds) {
//自己被禁言
}

@Override
public void onCommandToStopPlay(String liveID) {
//自己被强制停止发言
}

@Override
public void onReceivedMessage(XHIMMessage message) {
//收到消息
}

@Override
public void onReceivePrivateMessage(XHIMMessage message) {
//收到私有消息
}

@Override
public void onReceiveRealtimeData(byte[] data, String upId) {
//收到其他实时数据
}
});

9.2 XHSuperRoomManager API 说明

/**
* 添加事件监听
* @param superRoomManagerListener IXHSuperRoomManagerListener 接收相关事件
*/
void addListener(IXHSuperRoomManagerListener superRoomManagerListener);

/**
* 设置媒体类型,音频和视频可以都打开,也可以单独打开一个。
* @param mediaTypeEnum 参考XHConstants.XHRtcMediaTypeEnum
*/
void setRtcMediaType(XHConstants.XHRtcMediaTypeEnum mediaTypeEnum);

/**
* 创建直播
* @param superRoomItem XHSuperRoomItem 用于指定直播的名字和类型
* @param callback 结果回调
*/
void createSuperRoom(XHSuperRoomItem superRoomItem, IXHResultCallback callback);

/**
* 加入超级聊天室
* @param roomID 直播ID
* @param callback 结果回调
*/
void joinSuperRoom(String roomID, IXHResultCallback callback);

/**
* 停止发言
* @param callback 结果回调
*/
void layDownMic(IXHResultCallback callback);

/**
* 申请发言
* @param callback 结果回调,成功时将返回sessionID,用于服务端录像记录查询
*/
void pickUpMic(IXHResultCallback callback);

/**
* 离开聊天室
* @param callback 结果回调
*/
void leaveSuperRoom(IXHResultCallback callback);

/**
* 给主播指定显示画面的View
* @param userID 主播用户ID
* @param player 用于显示主播图像的StarPlayer
* @param isBig 设置是否显示主播的大图
*/
void attachPlayerView(String userID, StarPlayer player, Boolean isBig);

/**
* 命令连发言者停止
* @param toID 发言者ID
*/
void commandToAudience(String toID);


/**
* 切换摄像头方向
*/
void switchCamera();

/**
* 切换摄像头
* @param cameraId 指定切换到某个摄像头
*/
void switchCamera(int cameraId);

/**
* 切换成大图
* @param userID 切换成大图的主播ID
*/
void changeToBig(String userID);

/**
* 切换成小图
* @param userID 切换成小图的主播ID
*/
void changeToSmall(String userID);

/**
* 动态开关音频,直播过程中可随时开关音频,直播结束后状态自动重置。
*/
void setAudioEnable(Boolean enable);

/**
* 动态开关视频,直播过程中可随时开关视频,直播结束后状态自动重置。
*/
void setVideoEnable(Boolean enable);

/**
* 发送直播内消息
* @param message 发送的消息内容
* @param callback 结果回调
* @return 返回发送的消息对象
*/
XHIMMessage sendMessage(String message, IXHResultCallback callback);

/**
* 发送直播内私密消息
* 私密消息只有目标用户可以收到
* @param toID 目标用户ID
* @param message 发送的消息内容
* @param callback 结果回调
* @return 返回发送的消息对象
*/
XHIMMessage sendPrivateMessage(String toID, String message, IXHResultCallback callback);

/**
* 禁言直播内的用户
* @param memberID 被禁言的用户ID
* @param muteSeconds 禁言时长(单位:秒)
* @param callback 结果回调
*/
void muteMember(String memberID, int muteSeconds, IXHResultCallback callback);

/**
* 解除禁言
* @param memberID 解除禁言的用户ID
* @param callback 结果回调
*/
void unMuteMember(String memberID, IXHResultCallback callback);

/**
* 踢出用户
* @param memberID 被踢的用户ID
* @param callback 结果回调
*/
void kickMember(String memberID, IXHResultCallback callback);

/**
* 推送RTMP流
* @param rtmpurl 推送地址
* @param callback 结果回调
*/
void pushRtmp(String rtmpurl, IXHResultCallback callback);

/**
* 停止推送RTMP流
* @param callback 结果回调
*/
void stopPushRtmp(IXHResultCallback callback);


/**
* 设置recorder
* @param recorder
*/
void setRecorder(IXHRecorder recorder);

/**
* 切换recorder
* @param recorder
*/
void resetRecorder(IXHRecorder recorder);

/**
* Send the real-time data
* @param data data array
*/
void sendRealtimeData(byte[] data);