TUIRoomEngine API 简介
TUIRoomEngine API 是多人音视频房间的无 UI 接口,您可以使用这套 API 根据您的业务需求自定义封装。
createInstance
创建 TUIRoomEngine 实例。
static TUIRoomEngine createInstance()
return:TUIRoomEngine 实例。
destroyInstance
销毁TUIRoomEngine实例。
void destroyInstance()
login
登录 roomEngine 接口,您需要先初始化用户信息后才能进入房间,并进行一系列的操作。
static Future<TUIActionCallback> login(int sdkAppId,String userId,String userSig)
参数:
参数 | 类型 | 含义 |
sdkAppId | int | 应用信息中获取 sdkAppId 信息 |
userId | String | 用户 ID |
userSig | String |
logout
退出登录接口,会有主动离开房间操作、销毁资源。
static Future<TUIActionCallback> logout()
setSelfInfo
设置本地用户名称和头像。
static Future<TUIActionCallback> setSelfInfo(String userName, String avatarURL)
参数:
参数 | 类型 | 含义 |
userName | String | 用户名 |
avatarUrl | String | 用户头像 |
setLoginUserInfo
设置登录用户信息。
static Future<TUIActionCallback> setLoginUserInfo(TUILoginUserInfo userInfo)
参数:
参数 | 类型 | 含义 |
userInfo | 用户信息 |
getSelfInfo
获取本地用户登录的基本信息。
static TUILoginUserInfo getSelfInfo()
return:用户登录信息。
addObserver
添加 TUIRoomEngine 事件回调。
void addObserver(TUIRoomObserver observer)
参数:
参数 | 类型 | 含义 |
observer | TUIRoomEngine 事件回调 |
removeObserver
移除 TUIRoomEngine 事件回调。
void removeObserver(TUIRoomObserver observer)
参数 | 类型 | 含义 |
observer | TUIRoomEngine 事件回调 |
createRoom
主持人创建房间,调用 createRoom 的用户为房间的所有者。创建房间时可设置房间 ID、房间名称、以及房间是否允许加入用户开启音视频、发送消息等功能。
Future<TUIActionCallback> createRoom(TUIRoomInfo roomInfo)
参数:
参数 | 类型 | 含义 |
roomInfo | 房间基本信息 |
destroyRoom
销毁房间接口,销毁房间必须由房间所有者发起,销毁房间之后房间不可进入。
Future<TUIActionCallback> destroyRoom()
enterRoom
进入房间接口。
Future<TUIValueCallBack<TUIRoomInfo>> enterRoom(String roomId)
参数:
参数 | 类型 | 含义 |
roomId | String | 房间号,字符串类型 |
exitRoom
离开房间接口,用户在执行 enterRoom 之后可通过 exitRoom 离开房间。
Future<TUIActionCallback> exitRoom(bool syncWaiting)
参数:
参数 | 类型 | 含义 |
syncWaiting | bool | 是否同步退出房间 |
connectOtherRoom
连接其他房间。
说明:
用于直播场景下的申请跨房连麦。
TUIRequest connectOtherRoom(String roomId,String userId,int timeout,TUIRequestCallback? requestCallback)
参数:
参数 | 类型 | 含义 |
roomId | String | 房间 ID |
userId | String | 用户 ID |
timeout | int | 时间 |
callback | 连接其他房间请求回调 |
Return:请求体
disconnectOtherRoom
断开与其他房间的连接。
说明:
用于直播场景下的断开跨房连麦。
Future<TUIActionCallback> disconnectOtherRoom()
fetchRoomInfo
获取房间信息。
Future<TUIValueCallBack<TUIRoomInfo>> fetchRoomInfo()
updateRoomNameByAdmin
更新房间名称。
Future<TUIActionCallback> updateRoomNameByAdmin(String roomName)
参数:
参数 | 类型 | 含义 |
roomName | String | 房间名称 |
updateRoomSpeechModeByAdmin
设置房间管理模式(只有管理员或群主能够调用)。
Future<TUIActionCallback> updateRoomSpeechModeByAdmin(TUISpeechMode mode)
参数 | 类型 | 含义 |
mode | 房间模式 |
setLocalVideoView
设置本地用户视频渲染的视图控件。
void setLocalVideoView(TUIVideoStreamType streamType,int viewId)
参数:
参数 | 类型 | 含义 |
streamType | 本地流类型 | |
viewId | int | 待渲染 view 指针的 int64 类型值,通过此 viewId 可转换为对应原生平台的视图,视频画面将渲染于此视图上 |
openLocalCamera
打开本地摄像头,开始视频流采集。
Future<TUIActionCallback> openLocalCamera(bool isFront,TUIVideoQuality quality)
参数:
参数 | 类型 | 含义 |
isFront | bool | 是否使用前置摄像头 |
quality | 视频质量 |
closeLocalCamera
关闭本地摄像头。
void closeLocalCamera()
updateVideoQuality
设置本地视频的参数。
void updateVideoQuality(TUIVideoQuality quality)
参数:
参数 | 类型 | 含义 |
quality | 视频质量 |
updateVideoQualityEx
设置本地视频编码器参数。
void updateVideoQualityEx(TUIVideoStreamType streamType, TUIRoomVideoEncoderParams params);
参数 | 类型 | 含义 |
streamType | 视频流类型 | |
params | 视频编码器参数 |
setVideoResolutionMode
设置视频编码器分辨率模式(横屏分辨率 or 竖屏分辨率)。
void setVideoResolutionMode(TUIVideoStreamType streamType, TUIResolutionMode resolutionMode);
参数 | 类型 | 含义 |
streamType | 视频流类型 | |
resolutionMode | 分辨率模式 |
enableGravitySensor
开启重力感应模式。
void enableGravitySensor(bool enable);
参数 | 类型 | 含义 |
enable | bool | 是否开启 |
startPushLocalVideo
开始向远端推本地视频流。
void startPushLocalVideo()
stopPushLocalVideo
停止向远端推本地视频流。
void stopPushLocalVideo()
startScreenSharing
开始屏幕分享
Future<void> startScreenSharing({String appGroup = ''})
stopScreenSharing
结束屏幕分享
Future<void> stopScreenSharing()
openLocalMicrophone
打开本地麦克风。
Future<TUIActionCallback> openLocalMicrophone(TUIAudioQuality quality)
参数 | 类型 | 含义 |
quality | 音频质量 |
closeLocalMicrophone
关闭本地麦克风。
void closeLocalMicrophone()
updateAudioQuality
更新本地音频编码质量设置。
void updateAudioQuality(TUIAudioQuality quality)
参数:
参数 | 类型 | 含义 |
quality | 音频质量 |
muteLocalAudio
停止向远端推本地音频流。
Future<TUIActionCallback> muteLocalAudio()
unMuteLocalAudio
开始向远端推本地音频流。
Future<TUIActionCallback> unMuteLocalAudio()
setRemoteVideoView
设置远端用户视频渲染的视图控件。
void setRemoteVideoView(String userId,TUIVideoStreamType streamType,int viewId)
参数:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
streamType | 用户流类型 | |
viewId | int | 待渲染 view 指针的 int64 类型值,通过此 viewId 可转换为对应原生平台的视图,视频画面将渲染于此视图上 |
startPlayRemoteVideo
开始播放远端用户视频流。
void startPlayRemoteVideo(String userId,TUIVideoStreamType streamType,TUIPlayCallback callback)
参数:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
streamType | 用户流类型 | |
callback | 播放结果回调 |
stopPlayRemoteVideo
停止播放远端用户视频流。
void stopPlayRemoteVideo(String userId,TUIVideoStreamType streamType)
参数:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
streamType | 用户流类型 |
muteRemoteAudioStream
将远端用户禁音。
void muteRemoteAudioStream(String userId, boolean isMute);
参数:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
isMute | bool | 是否禁音 |
getUserList
获取当前房间用户列表,注意该接口一次拉取的用户列表量最大为 100 个。
Future<TUIValueCallBack<TUIUserListResult>> getUserList(int nextSequence)
参数:
参数 | 类型 | 含义 |
nextSequence | int | 分页拉取标志,第一次拉取填0。回调成功如果 nextSeq 不为零,需要分页,传入 nextSeq 再次拉取,直至 callback 中 nextSeq 为0 |
getUserInfo
获取用户的详细信息。
Future<TUIValueCallBack<TUIUserInfo>> getUserInfo(String userId)
参数:
参数 | 类型 | 含义 |
userId | String | 根据 userId 获取该用户的详细信息 |
changeUserRole
改变用户的角色,只有管理员或群主能够调用。
Future<TUIActionCallback> changeUserRole(String userId,TUIRole role)
参数:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
role | 用户角色 |
kickRemoteUserOutOfRoom
将用户移出房间,只有管理员或群主能够调用。
Future<TUIActionCallback> kickRemoteUserOutOfRoom(String userId)
参数:
参数 | 类型 | 含义 |
userId | String | 用户 ID |
addCategoryTagForUsers
为用户增加标记,只有房主能够调用
Future<TUIActionCallback> addCategoryTagForUsers(int tag, List<String> userList);
参数:
参数 | 类型 | 含义 |
tag | int | 标记类型。数字类型,大于等于 1000,您可以自定义。 |
userList | List<String> | 用户列表 |
removeCategoryTagForUsers
为用户移除标记,只有房主能够调用
Future<TUIActionCallback> removeCategoryTagForUsers(int tag, List<String> userList);
参数:
参数 | 类型 | 含义 |
tag | int | 类型。数字类型,大于等于 1000,您可以自定义。 |
userList | List<String> | 用户列表 |
getUserListByTag
根据标记获取房间内用户信息
为用户移除标记,只有房主能够调用
Future<TUIValueCallBack<TUIUserListResult>> getUserListByTag(int tag, int nextSequence);
参数:
参数 | 类型 | 含义 |
tag | int | 类型。数字类型,大于等于 1000,您可以自定义。 |
nextSequence | int | 分页拉取标志,第一次拉取填0,回调成功 如果 callback 返回的数据中 nextSequence 不为零,需要分页,传入再次拉取,直至为0 |
disableDeviceForAllUserByAdmin
全体用户媒体设备管理,只有管理员或群主能够调用。
Future<TUIActionCallback> disableDeviceForAllUserByAdmin(TUIMediaDevice device,bool isDisable)
参数 | 类型 | 含义 |
device | 设备 | |
isDisable | bool | 是否禁用 |
openRemoteDeviceByAdmin
请求远端用户打开媒体设备,只有管理员或群主能够调用。
TUIRequest openRemoteDeviceByAdmin(String userId,TUIMediaDevice device,int timeout,TUIRequestCallback? requestCallback)
参数 | 类型 | 含义 |
userId | String | 用户 ID |
device | 设备 | |
timeout | int | 超时时间,单位秒。如果设置为 0,SDK 不会做超时检测,也不会触发超时回调 |
requestCallback | TUIRequestCallback? | 操作结果回调 |
closeRemoteDeviceByAdmin
关闭远端用户媒体设备,只有管理员或群主能够调用。
Future<TUIActionCallback> closeRemoteDeviceByAdmin(String userId,TUIMediaDevice device)
参数 | 类型 | 含义 |
userId | String | 用户ID |
device | 设备 |
applyToAdminToOpenLocalDevice
全体用户媒体设备管理 lock。
TUIRequest applyToAdminToOpenLocalDevice(TUIMediaDevice device,int timeout,TUIRequestCallback requestCallback)
参数 | 类型 | 含义 |
device | 设备 | |
timeout | int | 超时时间,单位秒。如果设置为 0,SDK 不会做超时检测,也不会触发超时回调 |
callback | 操作结果回调 |
setMaxSeatCount
设置最大麦位数,仅支持进房前和创建房间时设置。
Future<TUIActionCallback> setMaxSeatCount(int maxSeatCount)
参数 | 类型 | 含义 |
maxSeatCount | int | 最大麦位数 |
lockSeatByAdmin
锁定麦位(包括位置锁定,音频状态锁定,视频状态锁定)。
Future<TUIActionCallback> lockSeatByAdmin(int seatIndex,TUISeatLockParams lockParams)
参数 | 类型 | 含义 |
seatIndex | int | 麦位编号 |
lockParams | 锁麦参数 |
getSeatList
获取麦位列表。
Future<TUIValueCallBack<List<TUISeatInfo>>> getSeatList()
takeSeat
本地上麦。
说明:
会议场景:applyToSpeak 模式需要向主持人或管理员发起申请才允许上麦,其他模式不支持上麦。
直播场景:freeToSpeak 模式可以自由上麦,上麦后开麦发言;applySpeakAfterTakingSeat 模式需要向主持人或管理员发起申请才允许上麦;其他模式不支持上麦。
TUIRequest takeSeat(int seatIndex,int timeout,TUIRequestCallback? requestCallback)
参数:
参数 | 类型 | 含义 |
seatIndex | int | 麦位编号 |
timeout | int | 超时时间,单位秒。如果设置为 0,SDK 不会做超时检测,也不会触发超时回调 |
requestCallback | 调用接口的回调,用于通知请求的回调状态 |
Return: 请求体
leaveSeat
本地下麦。
Future<TUIActionCallback> leaveSeat()
takeUserOnSeatByAdmin
主持人/管理员 邀请用户上麦。
TUIRequest takeUserOnSeatByAdmin(int seatIndex,String userId,int timeout,TUIRequestCallback? requestCallback)
参数 | 类型 | 含义 |
seatIndex | int | 麦位编号 |
userId | String | 用户 ID |
timeout | int | 超时时间,单位秒。如果设置为 0,SDK 不会做超时检测,也不会触发超时回调 |
requestCallback | 调用接口的回调,用于通知请求的回调状态 |
Return: 请求体
kickUserOffSeatByAdmin
主持人/管理员 将用户下麦。
Future<TUIActionCallback> kickUserOffSeatByAdmin(int seatIndex,String userId)
参数 | 类型 | 含义 |
seatIndex | int | 麦位编号 |
userId | String | 用户 ID |
sendTextMessage
发送文本消息。
Future<TUIActionCallback> sendTextMessage(String message)
参数:
参数 | 类型 | 含义 |
message | String | 文本消息内容 |
sendCustomMessage
发送自定义消息。
Future<TUIActionCallback> sendCustomMessage(String message)
参数:
参数 | 类型 | 含义 |
message | String | 自定义消息内容 |
disableSendingMessageByAdmin
禁用远端用户的发送文本消息能力(只有管理员或群主能够调用)。
Future<TUIActionCallback> disableSendingMessageByAdmin(String userId,bool isDisable)
参数 | 类型 | 含义 |
userId | String | 用户 ID |
isDisable | bool | 是否禁用 |
disableSendingMessageForAllUser
禁用所有用户的发送文本消息能力(只有管理员或群主能够调用)。
Future<TUIActionCallback> disableSendingMessageForAllUser(bool isDisable)
参数 | 类型 | 含义 |
isDisable | bool | 是否禁用 |
cancelRequest
取消已经发出的请求。
Future<TUIActionCallback> cancelRequest(String requestId)
参数:
参数 | 类型 | 含义 |
requestId | String | 请求 ID |
responseRemoteRequest
回复远端用户的请求。
Future<TUIActionCallback> responseRemoteRequest(String requestId,bool agree)
参数:
参数 | 类型 | 含义 |
requestId | String | 请求 ID |
agree | bool | 是否同意 |
callExperimentalAPI
调用实验性接口。
void callExperimentalAPI(String jsonStr);
参数 | 类型 | 含义 |
jsonStr | String | 接口信息 |
switchCamera
切换前置或后置摄像头(仅适用于移动端)。
Future<int?> switchCamera(bool isFrontCamera);
参数 | 类型 | 含义 |
isFrontCamera | bool | 是否前置 |
setBeautyLevel
设置美颜级别。
void setBeautyLevel(int beautyStyle, int beautyLevel);
参数 | 类型 | 含义 |
beautyStyle | int | 美颜风格 |
beautyLevel | int | 美颜级别 |
setWhitenessLevel
设置美白级别。
void setWhitenessLevel(int whitenessLevel);
参数 | 类型 | 含义 |
whitenessLevel | int | 美白级别 |