TUIRoomEngine

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
userSig 签名。计算 userSig 的方式请参考UserSig 相关

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
TUILoginUserInfo
用户信息

getSelfInfo

获取本地用户登录的基本信息。
static TUILoginUserInfo getSelfInfo()
return:用户登录信息。

addObserver

添加 TUIRoomEngine 事件回调。
void addObserver(TUIRoomObserver observer)
参数:
参数
类型
含义
observer
TUIRoomObserver
TUIRoomEngine 事件回调

removeObserver

移除 TUIRoomEngine 事件回调。
void removeObserver(TUIRoomObserver observer)
参数
类型
含义
observer
TUIRoomObserver
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
TUIRequestCallback
连接其他房间请求回调
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(int viewId)
参数:
参数
类型
含义
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
TUIVideoStreamType
视频流类型
params
TUIRoomVideoEncoderParams
视频编码器参数

setVideoResolutionMode

设置视频编码器分辨率模式(横屏分辨率 or 竖屏分辨率)。
void setVideoResolutionMode(
TUIVideoStreamType streamType, TUIResolutionMode resolutionMode);
参数
类型
含义
streamType
TUIVideoStreamType
视频流类型
resolutionMode
TUIResolutionMode
分辨率模式

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
TUIPlayCallback?
播放结果回调

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
TUIRole
用户角色

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
TUIRequestCallback?
操作结果回调

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
TUIRequestCallback?
调用接口的回调,用于通知请求的回调状态
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
TUIRequestCallback?
调用接口的回调,用于通知请求的回调状态
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
美白级别