自定义房间信息
本文档主要介绍如何使用
RTC Room Engine
SDK 实现自定义房间信息。前提条件
使用指引
说明:
使用自定义房间信息功能时,请确保您是房主或者管理员。房间类型为 live。
设置房间信息:
您需要准备好需要设置的参数
TUILiveInfo
,接下来进行详细介绍:参数:TUILiveInfo
TUILiveInfo
由很多的字段构成,但通常您只需要关心如下几个字段的填写:参数名称 | 类型 | 描述 |
activityStatus | Int | 直播间活跃状态:用户自定义标记。 |
backgroundUrl | String | 直播间背景,最大支持 200 个字节。 |
categoryList | List<Int> | 直播间分类标签,单个房间最大支持3个标记。 |
coverUrl | String | 直播间封面,最大支持 200 个字节。 |
isPublicVisible | Bool |
在准备好 TUILiveInfo 之后,便可以通过调用
setLiveInfo
接口设置直播间信息。您需要准备好需要设置的参数
LiveInfo
,接下来进行详细介绍:参数:LiveInfo
LiveInfo
由很多的字段构成,但通常您只需要关心如下几个字段的填写:参数名称 | 类型 | 描述 |
activityStatus | Int | 直播间活跃状态: 用户自定义标记。 |
backgroundUrl | String | 直播间背景,最大支持 200 个字节。 |
categoryList | List<Int> | 直播间分类标签,单个房间最大支持3个标记。 |
coverUrl | String | 直播间封面,最大支持 200 个字节。 |
isPublicVisible | Bool |
在准备好 TUILiveInfo 之后,便可以通过调用
setLiveInfo
接口设置直播间信息。示例:
import RTCRoomEnginelet roomEngine = TUIRoomEngine.sharedInstance()let liveListManager = roomEngine.getExtension(extensionType: .liveListManager) as? TUILiveListManagerlet liveInfo = TUILiveInfo()liveInfo.backgroundUrl = "backgroundUrl" // 替换为您需要的直播间背景图片liveInfo.coverUrl = "coverUrl" // 替换为您需要的直播间封面图片liveInfo.isPublicVisible = true // 直播间公开liveInfo.categoryList = [1, 2] // 可替换为您业务中的直播间分类let modifyFlag: TUILiveModifyFlag = [.backgroundUrl, .coverUrl, .publish, .category] // 这里为您所修改的类别liveListManager?.setLiveInfo(liveInfo, modifyFlag: modifyFlag) {// 设置直播间信息成功} onError: { code, message in// 设置直播间信息失败}
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();TUILiveListManager liveListManager = (TUILiveListManager) roomEngine.getExtension(TUICommonDefine.ExtensionType.LIVE_LIST_MANAGER);TUILiveListManager.LiveInfo liveInfo = new TUILiveListManager.LiveInfo();liveInfo.backgroundUrl = "backgroundUrl"; // 替换为您需要的直播间背景图片liveInfo.coverUrl = "coverUrl"; // 替换为您需要的直播间封面图片liveInfo.isPublicVisible = true; // 直播间公开liveInfo.categoryList =new ArrayList<>(Arrays.asList(1, 2)); // 可替换为您业务中的直播间分类List<TUILiveListManager.LiveModifyFlag> modifyFlag = new ArrayList<>();// 下面为您所修改的类别modifyFlag.add(TUILiveListManager.LiveModifyFlag.BACKGROUND_URL);modifyFlag.add(TUILiveListManager.LiveModifyFlag.COVER_URL);modifyFlag.add(TUILiveListManager.LiveModifyFlag.PUBLISH);modifyFlag.add(TUILiveListManager.LiveModifyFlag.CATEGORY);liveListManager.setLiveInfo(liveInfo, modifyFlag, new TUIRoomDefine.ActionCallback() {@Overridepublic void onSuccess() {// 设置直播间信息成功}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 设置直播间信息失败}});
修改房间名称:
使用
updateRoomNameByAdmin
API修改房间名称。SDK会通过onRoomNameChanged
回调通知房间内用户。此函数仅有房主或管理员可以调用。
示例:
import RTCRoomEnginelet roomEngine = TUIRoomEngine.sharedInstance()let name = "New Name" //替换为您的真实用户名roomEngine.updateRoomNameByAdmin(roomName: newName) {//修改房间名成功} onError: { code, message in//修改房间名失败}
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();String newName = ""; //替换为你需要的newNameroomEngine.updateRoomNameByAdmin(newName ,new TUIRoomDefine.ActionCallback() {@Overridepublic void onSuccess() {//修改房间名成功}@Overridepublic void onError(TUICommonDefine.Error error, String message) {//修改房间名成功}});
自定义房间信息:
使用
setRoomMetadataByAdmin
API设置房间自定义信息,已有该属性则更新其 value 值,没有则添加该属性。此函数仅有房主或管理员可以调用,且此函数仅支持直播房间类型为
Live
示例:
import RTCRoomEnginelet roomEngine = TUIRoomEngine.sharedInstance()roomEngine.setRoomMetadataByAdmin([key:value], onSuccess: {//设置自定义数据成功}, onError: {code ,message in//设置自定义数据失败})
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();// 准备要设置或更新的元数据键值对HashMap<String, String> metadataToUpdate = new HashMap<>(); 请填入您想要的键值对metadataToUpdate.put("is_recording", "true"); // 设置是否正在录制,此处仅为举例roomEngine.setRoomMetadataByAdmin(metadataToUpdate, new TUIRoomDefine.ActionCallback() {@Overridepublic void onSuccess() {// 设置成功的回调}@Overridepublic void onError(int errorCode, String errorMessage) {// 设置失败的回调}});
获取房间自定义信息:
当设置自定义信息完成之后,您可以调用
getRoomMetadata
接口来获取当前直播间的全部或指定的信息。此函数仅有房主或管理员可以调用,且此函数仅支持直播房间类型为
Live
示例:
import RTCRoomEnginelet roomEngine = TUIRoomEngine.sharedInstance()let keys: [String] = [""]//参数传入房间自定义信息 key 列表, 如果 keys 传空则获取所有自定义信息roomEngine.getRoomMetadata(array) { metadata in//获取自定义信息成功} onError: { code, message in//获取自定义信息失败}
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();List<String> keysToQuery = new ArrayList<>();//替换为您需要查询的列表roomEngine.getRoomMetadata(keysToQuery, new TUIRoomDefine.GetRoomMetadataCallback() {@Overridepublic void onSuccess(Map<String, String> metadata) {// 成功回调}@Overridepublic void onError(int errorCode, String errorMessage) {// 失败回调}});